123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- using esoft.Entities;
- using System;
- using System.CodeDom.Compiler;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- namespace esoft.Class
- {
- // Класс ExecuterFill наследуется от класса User и предоставляет методы для заполнения данных исполнителей и получения статистики по задачам.
- public class ExecuterFill : User
- {
- string grade; // Уровень Менеджера
- int managerID; // Менеджер, которому подчиняется Исполнитель
- string fioUser; // ФИО Исполнителя
- string fioManager; // ФИО Менеджера
- int numberTasks_Plan; // Количество задач, запланированных
- int numberTasks_Executed; // Количество задач, исполняемых
- int numberTasks_Done; // Количество выполненных задач
- int numberTasks_Сancelled; // Количество отмененных задач
- public string Grade
- {
- get { return grade; }
- set { grade = value; }
- }
- public int ManagerID
- {
- get { return managerID; }
- set { managerID = value; }
- }
- public string FioUser
- {
- get { return fioUser; }
- set { fioUser = value; }
- }
- public string FioManager
- {
- get { return fioManager; }
- set { fioManager = value; }
- }
- public int NumberTask_Plan
- {
- get { return numberTasks_Plan; }
- set { numberTasks_Plan = value; }
- }
- public int NumberTask_Executed
- {
- get { return numberTasks_Executed; }
- set { numberTasks_Executed = value; }
- }
- public int NumberTask_Done
- {
- get { return numberTasks_Done; }
- set { numberTasks_Done = value; }
- }
- public int NumberTask_Сancelled
- {
- get { return numberTasks_Сancelled; }
- set { numberTasks_Сancelled = value; }
- }
- // Метод Fill заполняет список ExecuterFill данными о пользователях и исполнителях.
- public static List<ExecuterFill> Fill()
- {
- List<ExecuterFill> executerFills = new List<ExecuterFill>();
- try
- {
- // Создание экземпляра ActualContext для получения актуальных данных
- ActualContext actualContext = new ActualContext();
- // Получение списка исполнителей и пользователей из контекста данных
- List<esoft.Entities.Executor> executors = esoftEntities.GetContext().Executor.ToList();
- List<User> users = esoftEntities.GetContext().User.ToList();
- // Проход по каждому пользователю и исполнителю
- foreach (var user in users)
- {
- foreach (var executer in executors)
- {
- // Проверка соответствия пользователя и исполнителя
- if (user.ID == executer.ID)
- {
- // Добавление нового экземпляра ExecuterFill в список, заполненного данными пользователя и исполнителя
- executerFills.Add(new ExecuterFill
- {
- ID = user.ID,
- Password = user.Password,
- FirstName = user.FirstName,
- MiddleName = user.MiddleName,
- LastName = user.LastName,
- Login = user.Login,
- IsDeleted = user.IsDeleted,
- FioUser = UserInFIO.SoloUser(user),
- Grade = executer.Grade,
- managerID = executer.ManagerID,
- FioManager = UserInFIO.SoloUser(
- actualContext.Users.FirstOrDefault(
- x => x.ID == actualContext.Executor.FirstOrDefault(
- z => z.ID == executer.ID).ManagerID)),
- NumberTask_Plan = GetPlanTaskCountForExecutor(executer.ID),
- NumberTask_Executed = GetExecutedTaskCountForExecutor(executer.ID),
- NumberTask_Done = GetDoneTaskCountForExecutor(executer.ID),
- NumberTask_Сancelled = GetCancelledTaskCountForExecutor(executer.ID),
- });
- }
- }
- }
- }
- catch
- {
- // В случае ошибки выводится сообщение об ошибке
- MessageBox.Show("Ошибка заполнения списка Исполнителей",
- "Ошибка",
- MessageBoxButton.OK,
- MessageBoxImage.Error);
- }
- // Возвращается список заполненных ExecuterFill или пустой список в случае ошибки
- return executerFills;
- }
- // Метод GetPlanTaskCountForExecutor возвращает количество запланированных задач для указанного исполнителя.
- private static int GetPlanTaskCountForExecutor(int executorID)
- {
- ActualContext actualContext = new ActualContext();
- {
- return actualContext.Tasks.Count(task => task.ExecutorID == executorID && task.Status == "запланирована");
- }
- }
- // Метод GetExecutedTaskCountForExecutor возвращает количество исполняемых задач для указанного исполнителя.
- private static int GetExecutedTaskCountForExecutor(int executorID)
- {
- ActualContext actualContext = new ActualContext();
- {
- return actualContext.Tasks.Count(task => task.ExecutorID == executorID && task.Status == "исполняется");
- }
- }
- // Метод GetDoneTaskCountForExecutor возвращает количество выполненных задач для указанного исполнителя.
- private static int GetDoneTaskCountForExecutor(int executorID)
- {
- ActualContext actualContext = new ActualContext();
- {
- return actualContext.Tasks.Count(task => task.ExecutorID == executorID && task.Status == "выполнена");
- }
- }
- // Метод GetCancelledTaskCountForExecutor возвращает количество отмененных задач для указанного исполнителя.
- private static int GetCancelledTaskCountForExecutor(int executorID)
- {
- ActualContext actualContext = new ActualContext();
- {
- return actualContext.Tasks.Count(task => task.ExecutorID == executorID && task.Status == "отменена");
- }
- }
- }
- }
|