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

namespace esoft.Class
{
    // Класс ActualContext предоставляет актуальные данные о пользователях, исполнителях, менеджерах и задачах.
    public class ActualContext
    {
        readonly List<User> users;
        readonly List<Executor> executor;
        readonly List<Manager> manager;
        readonly List<esoft.Entities.Task> tasks;

        public List<User> Users
        {
            get { return users; }
        }

        public List<Executor> Executor
        {
            get { return executor; }
        }

        public List<Manager> Manager
        {
            get { return manager; }
        }

        public List<esoft.Entities.Task> Tasks
        {
            // Получение задач из контекста данных
            get { return esoftEntities.GetContext().Task.ToList(); }
        }

        // Конструктор класса ActualContext
        public ActualContext()
        {
            try
            {
                // Инициализация списков данными из контекста данных
                users = esoftEntities.GetContext().User.ToList();
                executor = esoftEntities.GetContext().Executor.ToList();
                manager = esoftEntities.GetContext().Manager.ToList();
            }
            catch
            {
                // В случае ошибки подключения выводится сообщение об ошибке
                MessageBox.Show("Ошибка подключения",
                    "Проверьте подключение к интернету",
                    MessageBoxButton.OK,
                    MessageBoxImage.Error);
            }
        }
    }
}