using esoft.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;

namespace esoft.Class
{
    /// <summary>
    /// Класс для преобразования из имени пользователя его ФИО
    /// </summary>
    internal static class UserInFIO
    {
        /// <summary>
        /// Метод для формирования ФИО одного пользоватлея
        /// </summary>
        /// <param name="user">Пользователь которму нужно получить ФИО</param>
        /// <returns>Строка ФИО</returns>
        public static string SoloUser(User user) 
        {
            return $"{user.MiddleName} {user.FirstName[0]}. {user.LastName[0]}.";
        }
        /// <summary>
        /// Метод для формирования ФИО группы пользоватлей
        /// </summary>
        /// <param name="user">Список пользователей</param>
        /// <returns>Строкавая коллекция ФИО</returns>
        public static List<string> GroupUser(List<User> user)
        {
            List<string> userFIO = new List<string>();
            foreach (var item in user)
            {
                userFIO.Add($"{item.MiddleName} {item.FirstName[0]}. {item.LastName[0]}.");
            }
            return userFIO;
        }
        /// <summary>
        /// Метод для формирования строки на форму для Исполнителя
        /// </summary>
        /// <param name="user">Активный пользователь</param>
        /// <returns>Сформированная строка</returns>
        public static string ExecuterOnForm(User user)
        {
            string answer = null;
            try
            {
                Executor executer = esoftEntities.GetContext().Executor.FirstOrDefault(x => x.ID == user.ID);
                answer = $"{user.MiddleName} {user.FirstName[0]}. {user.LastName[0]}.";
                answer += $"\nЛогин - {user.Login}, Уровень - {executer.Grade}.";
                
            }
            catch
            {
                MessageBox.Show("Ошибка получения уровня пользователя",
                    "Ошибка",
                    MessageBoxButton.OK,
                    MessageBoxImage.Error);
            }
            return answer;
        }
    }
}
