/// <summary> /// Метод добавления экземпляра класса-наследника Worker в нераспределенные сотрудники /// </summary> /// <param name="worker">Экземпляр, который добавляем</param> private void Add_Unallocated_Worker(Worker worker) { worker.DepartmentId = 0; //сбрасываем Id worker.DepartmentName = ""; //сбрасываем наименование департамента UnallocatedWorkersId.Add(worker.Id); //добавляем в коллекцию нераспределенных Workers.Add(worker); //добавляем в коллекцию всех сотрудников организации }
/// <summary> /// Метод добавления экземпляра Manager в департамент организации /// </summary> /// <param name="DepartmentId">Id департамента</param> /// <param name="worker">Экземпляр, который добавляем</param> private void AddManager(int DepartmentId, Worker worker) { Department temp = this[DepartmentId]; //объявляем департамент temp, который будет ссылаться на департамент с нужным Id if (temp.ChiefId > 0) //если у департамента уже есть начальник (экземпляр Manager) { Worker OldChief = this[temp.ChiefId, DepartmentId]; //то перемещаем старого руководителя в нераспределенные this[DepartmentId].ChiefId = 0; OldChief.DepartmentId = 0; OldChief.DepartmentName = ""; UnallocatedWorkersId.Add(OldChief.Id); temp.ChiefId = 0; } worker.DepartmentName = temp.Name; //добавляем название департамента в экзепляр Worker worker.DepartmentId = DepartmentId; //добавляем Id Департамента в экземпляр Worker temp.ChiefId = worker.Id; //добавляем Id экземпляра Worker в руководителя департамента Workers.Add(worker); //добавляем экземпляр Worker в коллекцию всех сотрудников организации }
/// <summary> /// Метод удаления экземпляра класса-наследника Worker из нераспределенных сотрудников организации /// </summary> /// <param name="worker">Экземпляр, который удаляем</param> private void Delete_Unallocated_Worker(Worker worker) { UnallocatedWorkersId.Remove(worker.Id); Workers.Remove(worker); }