Пример #1
0
        public override void RemoveElement(int id)
        {
            logger.Info($"Выполняется удаления работника...");
            if (HospitalManager.GetRoleCurrentEmployee() != UserRole.Менеджер)
            {
                throw new Exception("Удалять пользователей может только менеджер");
            }

            Employee employee = FindById(id);

            if (employee is null)
            {
                throw new ArgumentException("Выбранного пользователя нет в базе");
            }

            if (employee.Role == UserRole.Менеджер)
            {
                logger.Info($"Попытка удаления менеджера {employee}...");
                if (employee.Profile.Priority == UserPriority.Высокий)
                {
                    throw new Exception("Нельзя удалить главного менеджера");
                }
                if (HospitalManager.GetPriorityCurrentUser() <= employee.Profile.Priority)
                {
                    throw new Exception("Уровень вашего доступа недостаточен для удаления выбранного пользователя");
                }
            }
            base.RemoveElement(id);
            logger.Info($"Работник удален");
        }
Пример #2
0
        public override void EditElement(int id, Employee newEmployee)
        {
            logger.Info($"Выполняется редактирование работника...");
            if (HospitalManager.GetRoleCurrentEmployee() != UserRole.Менеджер)
            {
                throw new FieldAccessException("Редактировать пользователей может только менеджер");
            }

            Employee employee = FindById(id);

            if (employee is null)
            {
                throw new ArgumentNullException("Выбранного пользователя нет в базе");
            }

            if (HospitalManager.GetPriorityCurrentUser() < employee.Profile.Priority)
            {
                throw new FieldAccessException("Уровень вашего доступа недостаточен для удаления выбранного пользователя");
            }

            newEmployee.Id = id;
            ValidateElement(newEmployee);
            logger.Info($"Редактирование работника {employee}...");
            employee.Edit(newEmployee);
            logger.Info("Редактирование завершено");
            Save();
        }
Пример #3
0
        public override void AddElement(Employee employee)
        {
            logger.Info($"Выполняется добаление работника {employee}...");
            if (HospitalManager.MainManagerIsNull())
            {
                logger.Info("Выполняется добавление главного менеджера...");
                if (employee.Role == UserRole.Менеджер && employee.Profile.Priority == UserPriority.Высокий)
                {
                    ValidateElement(employee);
                    employee.Id         = ++NextId;
                    employee.Profile.Id = employee.Id;

                    base.AddElement(employee);
                    logger.Info($"Главный менеджер добавлен {employee}");
                }
                else
                {
                    throw new ArgumentException("Вы пытаетесь добавить главного менеджера с несоответсвующими параметрами");
                }
            }
            else
            {
                if (HospitalManager.GetRoleCurrentEmployee() != UserRole.Менеджер)
                {
                    throw new Exception("Добавлять новых сотрудников может только менеджер");
                }

                ValidateElement(employee);
                employee.Id         = ++NextId;
                employee.Profile.Id = employee.Id;

                base.AddElement(employee);
                logger.Info($"Работник {employee} добавлен");
            }
        }
Пример #4
0
        public override void RemoveElement(int id)
        {
            logger.Info($"Выполняется удаления диагноза...");
            if (HospitalManager.GetRoleCurrentEmployee() != UserRole.Врач)
            {
                throw new Exception("Удалять диагноз может только врач");
            }

            base.RemoveElement(id);
            logger.Info($"Диагноз удален");
        }
Пример #5
0
        public override void RemoveElement(int id)
        {
            logger.Info($"Выполняется удаления заболевания...");
            if (HospitalManager.GetRoleCurrentEmployee() != UserRole.Врач)
            {
                throw new Exception("Удалять заболевания может только врач");
            }

            base.RemoveElement(id);
            logger.Info($"Заболевание удалено");
        }
Пример #6
0
        public override void RemoveElement(int id)
        {
            logger.Info($"Выполняется удаления пациента...");
            if (HospitalManager.GetRoleCurrentEmployee() != UserRole.егистратор)
            {
                throw new Exception("Удалять пациентов может только регистратор");
            }

            base.RemoveElement(id);
            logger.Info($"Пациент удален");
        }
Пример #7
0
        public override void AddElement(Diagnosis diagnosis)
        {
            logger.Info($"Выполняется добаление диагноза {diagnosis}...");
            if (HospitalManager.GetRoleCurrentEmployee() != UserRole.Врач)
            {
                throw new Exception("Добавлять диагноз может только врач");
            }

            ValidateElement(diagnosis);
            diagnosis.Id = ++NextId;

            base.AddElement(diagnosis);
            logger.Info($"Диагноз {diagnosis} добавлен");
        }
Пример #8
0
        public override void AddElement(Treatment treatment)
        {
            logger.Info($"Выполняется добаление лечения {treatment}...");
            if (HospitalManager.GetRoleCurrentEmployee() != UserRole.Врач)
            {
                throw new Exception("Добавлять лечение может только врач");
            }

            ValidateElement(treatment);
            treatment.Id = ++NextId;

            base.AddElement(treatment);
            logger.Info($"лечение {treatment} добавлено");
        }
Пример #9
0
        public override void AddElement(Visit visit)
        {
            logger.Info($"Выполняется добаление визита {visit}...");

            if (HospitalManager.GetRoleCurrentEmployee() != UserRole.егистратор)
            {
                throw new Exception("Добавлять новые визиты может только регистратор");
            }

            ValidateElement(visit);
            visit.Id = ++NextId;
            base.AddElement(visit);
            logger.Info($"Визит {visit} добавлен");
        }
Пример #10
0
        public override void AddElement(Patient patient)
        {
            logger.Info($"Выполняется добаление пациента {patient}...");

            if (HospitalManager.GetRoleCurrentEmployee() != UserRole.егистратор)
            {
                throw new Exception("Добавлять новых пациентов может только регистратор");
            }

            ValidateElement(patient);
            patient.Id = ++NextId;

            base.AddElement(patient);
            logger.Info($"Пациент {patient} добавлен");
        }
Пример #11
0
        public override void AddElement(Disease disease)
        {
            logger.Info($"Выполняется добаление заболевания {disease}...");
            if (HospitalManager.GetRoleCurrentEmployee() != UserRole.Врач)
            {
                throw new Exception("Добавлять заболевания может только врач");
            }

            ValidateElement(disease);
            disease.Id = ++NextId;



            base.AddElement(disease);
            logger.Info($"Заболевание {disease} добавлена");
        }
Пример #12
0
        public override void EditElement(int id, Diagnosis newDiagnosis)
        {
            logger.Info($"Выполняется редактирование диагноза...");
            if (HospitalManager.GetRoleCurrentEmployee() != UserRole.Врач)
            {
                throw new FieldAccessException("Редактировать диагноз может только врач");
            }

            Diagnosis diagnosis = FindById(id);

            if (diagnosis is null)
            {
                throw new ArgumentNullException("Выбранного диагноза нет в базе");
            }

            ValidateElement(newDiagnosis);
            logger.Info($"Редактирование диагноза {diagnosis}...");
            diagnosis.Edit(newDiagnosis);
            logger.Info("Редактирование завершено");
            Save();
        }
Пример #13
0
        public override void EditElement(int id, Patient newPatient)
        {
            logger.Info($"Выполняется редактирование пациента...");
            if (HospitalManager.GetRoleCurrentEmployee() != UserRole.егистратор)
            {
                throw new FieldAccessException("Редактировать пациентов может только продавец");
            }

            Patient patient = FindById(id);

            if (patient is null)
            {
                throw new ArgumentNullException("Выбранного пациента нет в базе");
            }

            ValidateElement(newPatient);
            logger.Info($"Редактирование пациента {patient}...");
            patient.Edit(newPatient);
            logger.Info("Редактирование завершено");
            Save();
        }
Пример #14
0
        public override void EditElement(int id, Disease newDisease)
        {
            logger.Info($"Выполняется редактирование  заболевания...");
            if (HospitalManager.GetRoleCurrentEmployee() != UserRole.Врач)
            {
                throw new FieldAccessException("Редактировать заболевания может только врач");
            }

            Disease disease = FindById(id);

            if (disease is null)
            {
                throw new ArgumentNullException("Выбранного заболевания нет в базе");
            }

            ValidateElement(newDisease);
            logger.Info($"Редактирование заболевания {disease}...");
            disease.Edit(newDisease);
            logger.Info("Редактирование завершено");
            Save();
        }
Пример #15
0
        public override void EditElement(int id, Treatment newTreatment)
        {
            logger.Info($"Выполняется редактирование  лечения...");
            if (HospitalManager.GetRoleCurrentEmployee() != UserRole.Врач)
            {
                throw new FieldAccessException("Редактировать лечение может только врач");
            }

            Treatment treatment = FindById(id);

            if (treatment is null)
            {
                throw new ArgumentNullException("Выбранного лечения нет в базе");
            }

            ValidateElement(newTreatment);
            logger.Info($"Редактирование лечения {treatment}...");
            treatment.Edit(newTreatment);
            logger.Info("Редактирование завершено");
            Save();
        }
Пример #16
0
        public override void EditElement(int id, Visit newVisit)
        {
            logger.Info($"Выполняется редактирование визита...");
            if (HospitalManager.GetRoleCurrentEmployee() != UserRole.егистратор)
            {
                throw new FieldAccessException("Редактировать визиты может только регистратор");
            }

            Visit visit = FindById(id);

            if (visit is null)
            {
                throw new ArgumentNullException("Выбранного визита нет в базе");
            }

            ValidateElement(newVisit);
            logger.Info($"Редактирование визита {visit}...");
            visit.Edit(newVisit);
            logger.Info("Редактирование завершено");
            Save();
        }