Пример #1
0
        public IActionResult Delete(int id)
        {
            VaccinationVM vaccination = repository.GetByCondition(v => v.Id == id).FirstOrDefault();

            if (vaccination == null)
            {
                Log.Information($"{CurrentMethod.GetName()}: прививка Id = {id} отсутствует в базе данных");
                return(NotFound());
            }

            try {
                repository.Delete(id);
            }
            catch (ArgumentNullException e) {
                Log.Error($"{CurrentMethod.GetName()}: при обработке запроса произошло исключение {e.GetType()}\n  Метод вызвавший исключение: {e.TargetSite.Name}\n  Параметр не может быть равен null\n  Имя параметра: {e.ParamName}\n  Стек вызовов:\n{e.StackTrace}");
                return(StatusCode(500));
            }
            catch (DbUpdateConcurrencyException e) {
                Log.Error($"{CurrentMethod.GetName()}: при обработке запроса произошло исключение {e.GetType()}\n  Метод вызвавший исключение: {e.TargetSite.Name}\n  Стек вызовов:\n{e.StackTrace}");
                return(StatusCode(500));
            }
            catch (DbUpdateException e) {
                Log.Error($"{CurrentMethod.GetName()}: при обработке запроса произошло исключение {e.GetType()}\n  Метод вызвавший исключение: {e.TargetSite.Name}\n  Стек вызовов:\n{e.StackTrace}");
                return(StatusCode(500));
            }

            Log.Information($"{CurrentMethod.GetName()}: удалена прививка Id = {id}");
            return(Ok());
        }
Пример #2
0
        public ActionResult <IEnumerable <Vaccination> > Get()
        {
            IQueryable <VaccinationVM> vaccinations = repository.GetAll();

            Log.Information($"{CurrentMethod.GetName()}: получены все прививки");
            return(Ok(vaccinations));
        }
Пример #3
0
        public ActionResult <IEnumerable <Patient> > Get()
        {
            IQueryable <Patient> patients = repository.GetAll();

            Log.Information($"{CurrentMethod.GetName()}: получены все пациенты");
            return(Ok(patients));
        }
Пример #4
0
        public ActionResult <IEnumerable <Vaccine> > Get()
        {
            IQueryable <Vaccine> vaccines = repository.GetAll();

            Log.Information($"{CurrentMethod.GetName()}: получены все препараты");
            return(Ok(vaccines));
        }
Пример #5
0
        public ActionResult <ResponseVM> Post([FromBody] Patient patient)
        {
            if (patient == null)
            {
                Log.Information($"{CurrentMethod.GetName()}: не удалось связать модель");
                ResponseVM response400 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Bad request", StatusCode = 400, Result = "Не удалось связать модель, patient был равен null"
                };
                return(BadRequest(response400));
            }

            Patient sameSNILSPatient = null;

            try {
                sameSNILSPatient = repository.GetByCondition(p => p.SNILS == patient.SNILS).FirstOrDefault();
            }
            catch (ArgumentNullException e) {
                Log.Error($"{CurrentMethod.GetName()}: при обработке запроса произошло исключение {e.GetType()}\n  Метод вызвавший исключение: {e.TargetSite.Name}\n  Параметр не может быть равен null\n  Имя параметра: {e.ParamName}\n  Стек вызовов:\n{e.StackTrace}");
                ResponseVM response500 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Internal server error", StatusCode = 500, Result = "Внутренняя ошибка сервера"
                };
                return(StatusCode(500, response500));
            }

            if (sameSNILSPatient != null)
            {
                Log.Information($"{CurrentMethod.GetName()}: пациент с таким СНИЛС уже есть");
                ResponseVM response409 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Conflict", StatusCode = 409, Result = "Пациент с таким СНИЛС уже есть"
                };
                return(Conflict(response409));
            }

            try {
                repository.Add(patient);
            }
            catch (DbUpdateConcurrencyException e) {
                Log.Error($"{CurrentMethod.GetName()}: при обработке запроса произошло исключение {e.GetType()}\n  Метод вызвавший исключение: {e.TargetSite.Name}\n  Стек вызовов:\n{e.StackTrace}");
                ResponseVM response500 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Internal server error", StatusCode = 500, Result = "Внутренняя ошибка сервера"
                };
                return(StatusCode(500, response500));
            }
            catch (DbUpdateException e) {
                Log.Error($"{CurrentMethod.GetName()}: при обработке запроса произошло исключение {e.GetType()}\n  Метод вызвавший исключение: {e.TargetSite.Name}\n  Стек вызовов:\n{e.StackTrace}");
                ResponseVM response500 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Internal server error", StatusCode = 500, Result = "Внутренняя ошибка сервера"
                };
                return(StatusCode(500, response500));
            }

            Log.Information($"{CurrentMethod.GetName()}: добавлен пациент Id = {patient.Id}");
            ResponseVM response200 = new ResponseVM {
                IsSuccess = true, StatusCode = 200, Result = $"Добавлен пациент Id = {patient.Id}"
            };

            return(Ok(response200));
        }
Пример #6
0
        public ActionResult <IEnumerable <Vaccination> > GetVaccinations([FromRoute(Name = "patient-id")] int patientId)
        {
            // добавить проверку наличия пациента в бд
            // для этого в этом контроллере нужно получить PatientRepository

            IQueryable <VaccinationVM> vaccinations;

            try {
                vaccinations = repository.GetByCondition(v => v.PatientId == patientId);
            }
            catch (ArgumentNullException e) {
                Log.Error($"{CurrentMethod.GetName()}: при обработке запроса произошло исключение {e.GetType()}\n  Метод вызвавший исключение: {e.TargetSite.Name}\n  Параметр не может быть равен null\n  Имя параметра: {e.ParamName}\n  Стек вызовов:\n{e.StackTrace}");
                return(StatusCode(500));
            }

            Log.Information($"{CurrentMethod.GetName()}: получены все прививки для пациента PatientId = {patientId}");
            return(Ok(vaccinations));
        }
Пример #7
0
        public ActionResult <Patient> Get(int id)
        {
            Patient patient = null;

            try {
                patient = repository.GetByCondition(p => p.Id == id).FirstOrDefault();
            }
            catch (ArgumentNullException e) {
                Log.Error($"{CurrentMethod.GetName()}: при обработке запроса произошло исключение {e.GetType()}\n  Метод вызвавший исключение: {e.TargetSite.Name}\n  Параметр не может быть равен null\n  Имя параметра: {e.ParamName}\n  Стек вызовов:\n{e.StackTrace}");
                return(StatusCode(500));
            }

            if (patient == null)
            {
                Log.Information($"{CurrentMethod.GetName()}: пациент Id = {id} отсутствует в базе данных");
                return(NotFound());
            }

            Log.Information($"{CurrentMethod.GetName()}: получен пациент Id = {id}");
            return(Ok(patient));
        }
Пример #8
0
        public ActionResult <ResponseVM> Post([FromBody] VaccinationVM vaccination)
        {
            if (vaccination == null)
            {
                Log.Information($"{CurrentMethod.GetName()}: не удалось связать модель");
                ResponseVM response400 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Bad request", StatusCode = 400, Result = "Не удалось связать модель, vaccination была равна null"
                };
                return(BadRequest(response400));
            }

            try {
                repository.Add(vaccination);
            }
            catch (DbUpdateConcurrencyException e) {
                Log.Error($"{CurrentMethod.GetName()}: при обработке запроса произошло исключение {e.GetType()}\n  Метод вызвавший исключение: {e.TargetSite.Name}\n  Стек вызовов:\n{e.StackTrace}");
                ResponseVM response500 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Internal server error", StatusCode = 500, Result = "Внутренняя ошибка сервера"
                };
                return(StatusCode(500, response500));
            }
            catch (DbUpdateException e) {
                Log.Error($"{CurrentMethod.GetName()}: при обработке запроса произошло исключение {e.GetType()}\n  Метод вызвавший исключение: {e.TargetSite.Name}\n  Стек вызовов:\n{e.StackTrace}");
                ResponseVM response500 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Internal server error", StatusCode = 500, Result = "Внутренняя ошибка сервера"
                };
                return(StatusCode(500, response500));
            }

            Log.Information($"{CurrentMethod.GetName()}: добавлена прививка Id = {vaccination.Id}");
            ResponseVM response200 = new ResponseVM {
                IsSuccess = true, StatusCode = 200, Result = $"Добавлена прививка Id = {vaccination.Id}"
            };

            return(Ok(response200));
        }
Пример #9
0
        public ActionResult <ResponseVM> Put([FromRoute] int id, [FromBody] VaccinationVM vaccination)
        {
            if (vaccination == null)
            {
                Log.Information($"{CurrentMethod.GetName()}: не удалось связать модель");
                ResponseVM response400 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Bad request", StatusCode = 400, Result = "Не удалось связать модель, vaccination была равна null"
                };
                return(BadRequest(response400));
            }

            VaccinationVM vaccinationFromDB = null;

            try {
                vaccinationFromDB = repository.GetByCondition(v => v.Id == id).FirstOrDefault();
            }
            catch (ArgumentNullException e) {
                Log.Error($"{CurrentMethod.GetName()}: при обработке запроса произошло исключение {e.GetType()}\n  Метод вызвавший исключение: {e.TargetSite.Name}\n  Параметр не может быть равен null\n  Имя параметра: {e.ParamName}\n  Стек вызовов:\n{e.StackTrace}");
                ResponseVM response500 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Internal server error", StatusCode = 500, Result = "Внутренняя ошибка сервера"
                };
                return(StatusCode(500, response500));
            }

            if (vaccinationFromDB == null)
            {
                Log.Information($"{CurrentMethod.GetName()}: прививка Id = {id} отсутствует в базе данных");
                ResponseVM response404 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Not found", StatusCode = 404, Result = $"Прививка Id = {id} отсутствует в базе данных"
                };
                return(NotFound(response404));
            }

            try {
                repository.Update(vaccination);
            }
            catch (ArgumentNullException e) {
                Log.Error($"{CurrentMethod.GetName()}: при обработке запроса произошло исключение {e.GetType()}\n  Метод вызвавший исключение: {e.TargetSite.Name}\n  Параметр не может быть равен null\n  Имя параметра: {e.ParamName}\n  Стек вызовов:\n{e.StackTrace}");
                ResponseVM response500 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Internal server error", StatusCode = 500, Result = "Внутренняя ошибка сервера"
                };
                return(StatusCode(500, response500));
            }
            catch (DbUpdateConcurrencyException e) {
                Log.Error($"{CurrentMethod.GetName()}: при обработке запроса произошло исключение {e.GetType()}\n  Метод вызвавший исключение: {e.TargetSite.Name}\n  Стек вызовов:\n{e.StackTrace}");
                ResponseVM response500 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Internal server error", StatusCode = 500, Result = "Внутренняя ошибка сервера"
                };
                return(StatusCode(500, response500));
            }
            catch (DbUpdateException e) {
                Log.Error($"{CurrentMethod.GetName()}: при обработке запроса произошло исключение {e.GetType()}\n  Метод вызвавший исключение: {e.TargetSite.Name}\n  Стек вызовов:\n{e.StackTrace}");
                ResponseVM response500 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Internal server error", StatusCode = 500, Result = "Внутренняя ошибка сервера"
                };
                return(StatusCode(500, response500));
            }

            Log.Information($"{CurrentMethod.GetName()}: изменена прививка Id = {id}");
            ResponseVM response200 = new ResponseVM {
                IsSuccess = true, StatusCode = 200, Result = $"Изменена прививка Id = {id}"
            };

            return(Ok(response200));
        }
Пример #10
0
        public ActionResult <ResponseVM> Put([FromRoute] int id, [FromBody] Patient patient)
        {
            if (patient == null)
            {
                Log.Information($"{CurrentMethod.GetName()}: не удалось связать модель");
                ResponseVM response400 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Bad request", StatusCode = 400, Result = "Не удалось связать модель, patient был равен null"
                };
                return(BadRequest(response400));
            }

            Patient sameIdPatient = null;

            try {
                sameIdPatient = repository.GetByCondition(p => p.Id == id).FirstOrDefault();
            }
            catch (ArgumentNullException e) {
                Log.Error($"{CurrentMethod.GetName()}: при обработке запроса произошло исключение {e.GetType()}\n  Метод вызвавший исключение: {e.TargetSite.Name}\n  Параметр не может быть равен null\n  Имя параметра: {e.ParamName}\n  Стек вызовов:\n{e.StackTrace}");
                ResponseVM response500 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Internal server error", StatusCode = 500, Result = "Внутренняя ошибка сервера"
                };
                return(StatusCode(500, response500));
            }

            if (sameIdPatient == null)
            {
                Log.Information($"{CurrentMethod.GetName()}: пациент Id = {id} отсутствует в базе данных");
                ResponseVM response404 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Not found", StatusCode = 404, Result = $"Пациент Id = {id} отсутствует в базе данных"
                };
                return(NotFound(response404));
            }

            // если был получен новый СНИЛС, проверить используется ли новый СНИЛС другим пациентом
            if (sameIdPatient.SNILS != patient.SNILS)
            {
                Patient sameSNILSPatient = null;
                try {
                    sameSNILSPatient = repository.GetByCondition(p => p.SNILS == patient.SNILS).FirstOrDefault();
                }
                catch (ArgumentNullException e) {
                    Log.Error($"{CurrentMethod.GetName()}: при обработке запроса произошло исключение {e.GetType()}\n  Метод вызвавший исключение: {e.TargetSite.Name}\n  Параметр не может быть равен null\n  Имя параметра: {e.ParamName}\n  Стек вызовов:\n{e.StackTrace}");
                    ResponseVM response500 = new ResponseVM {
                        IsSuccess = false, ErrorMessage = "Internal server error", StatusCode = 500, Result = "Внутренняя ошибка сервера"
                    };
                    return(StatusCode(500, response500));
                }

                if (sameSNILSPatient != null)
                {
                    Log.Information($"{CurrentMethod.GetName()}: пациент с таким СНИЛС уже есть");
                    ResponseVM response409 = new ResponseVM {
                        IsSuccess = false, ErrorMessage = "Conflict", StatusCode = 409, Result = "Пациент с таким СНИЛС уже есть"
                    };
                    return(Conflict(response409));
                }
            }

            try {
                repository.Update(patient);
            }
            catch (ArgumentNullException e) {
                Log.Error($"{CurrentMethod.GetName()}: при обработке запроса произошло исключение {e.GetType()}\n  Метод вызвавший исключение: {e.TargetSite.Name}\n  Параметр не может быть равен null\n  Имя параметра: {e.ParamName}\n  Стек вызовов:\n{e.StackTrace}");
                ResponseVM response500 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Internal server error", StatusCode = 500, Result = "Внутренняя ошибка сервера"
                };
                return(StatusCode(500, response500));
            }
            catch (DbUpdateConcurrencyException e) {
                Log.Error($"{CurrentMethod.GetName()}: при обработке запроса произошло исключение {e.GetType()}\n  Метод вызвавший исключение: {e.TargetSite.Name}\n  Стек вызовов:\n{e.StackTrace}");
                ResponseVM response500 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Internal server error", StatusCode = 500, Result = "Внутренняя ошибка сервера"
                };
                return(StatusCode(500, response500));
            }
            catch (DbUpdateException e) {
                Log.Error($"{CurrentMethod.GetName()}: при обработке запроса произошло исключение {e.GetType()}\n  Метод вызвавший исключение: {e.TargetSite.Name}\n  Стек вызовов:\n{e.StackTrace}");
                ResponseVM response500 = new ResponseVM {
                    IsSuccess = false, ErrorMessage = "Internal server error", StatusCode = 500, Result = "Внутренняя ошибка сервера"
                };
                return(StatusCode(500, response500));
            }

            Log.Information($"{CurrentMethod.GetName()}: изменен пациент Id = {id}");
            ResponseVM response200 = new ResponseVM {
                IsSuccess = true, StatusCode = 200, Result = $"Изменен пациент Id = {id}"
            };

            return(Ok(response200));
        }