/// <summary> /// saves an instance of type Dantist in DB /// </summary> /// <param name="dantist"></param> public static void SaveDantist(Dantist dantist) { using (var ctx = new PatientsContext()) { ctx.Entry(dantist).State = EntityState.Modified; ctx.SaveChanges(); } }
/// <summary> /// adds an instance of <Picture> to manipulation list of <Picture> and saves it to DB /// </summary> /// <param name="manipulationId"></param> /// <param name="picture"></param> public static void AddManipulationImages(int?manipulationId, Picture picture) { using (var ctx = new PatientsContext()) { Manipulation manipulation = ctx.Manipulations.Include(m => m.ManipulationPictures).Where(u => u.ManipulationId == manipulationId).FirstOrDefault(); manipulation.ManipulationPictures.Add(picture); ctx.Entry(manipulation).State = EntityState.Modified; ctx.SaveChanges(); } }
/// <summary> /// adds manipulation to tooth with given id and saves it to DB /// </summary> /// <param name="manipulation">manipulation to add</param> /// <param name="toothId">tooth id to which the manipulation is to add</param> public static void AddManipulation(Manipulation manipulation, int?toothId) { using (var ctx = new PatientsContext()) { Tooth tooth = ctx.Teeth.Include(m => m.Manipulations).Where(u => u.ToothId == toothId).FirstOrDefault(); tooth.Manipulations.Add(manipulation); ctx.Entry(tooth).State = EntityState.Modified; ctx.SaveChanges(); } }
/// <summary> /// adds an instance of type Picture to and instance of type Visit /// and saves that to DB /// </summary> /// <param name="visitId"></param> /// <param name="picture"></param> public static void NewPicture(int?visitId, Picture picture) { using (var ctx = new PatientsContext()) { Visit visit = ctx.Visits.Find(visitId); visit.VisitPictures.Add(picture); ctx.Entry(visit).State = EntityState.Modified; ctx.SaveChanges(); } }
/// <summary> /// add an instance of type Patient to an instance of type Dantist /// with given id and saves that to DB /// </summary> /// <param name="dantistId"></param> /// <param name="patient"></param> public static void AddPatient(int dantistId, Patient patient) { using (var ctx = new PatientsContext()) { Dantist dantist = ctx.Dantists.Find(dantistId); dantist.Patients.Add(patient); ctx.Entry(dantist).State = EntityState.Modified; ctx.SaveChanges(); } }
public IActionResult Edit(int id, Consultation consultation) { try { if (consultation == null) { logger.LogError($"При изменении консультации с id {id} произошла ошибка связывания модели."); return(View("Error", new ErrorViewModel { Message = $"При изменении консультации с id {id} произошла ошибка связывания модели." })); } var consultationId = consultation.ConsultationId; var _consultation = patientContext.Consultations.FromSqlRaw ($"SELECT * FROM CONSULTATIONS WHERE ConsultationId = {id}"); if (_consultation.Count() != 0) { if (consultation.Day < DateTime.Parse("01/01/1880") || consultation.Day > DateTime.Now.AddYears(1)) { logger.LogError($"При изменении пациенту с id = {consultation.PatientId}" + $" консультации с id = {id} произошла ошибка: Недопустимая дата: {consultation.Day}"); ModelState.AddModelError("Day", $"День консультации должен быть в промежутке" + $" от {DateTime.Parse("01/01/1880").ToString("d")} до {DateTime.Now.AddYears(1).ToString("d")}"); return(View(consultation)); } patientContext.Entry(_consultation.FirstOrDefault()).CurrentValues.SetValues(consultation); patientContext.SaveChanges(); logger.LogInformation($"У пациента с id = {consultation.PatientId}" + $" была изменена консультация с id = {id}"); return(RedirectToAction("Get", "Patient", new { id = consultation.PatientId, message = "Консультация успешно изменена" })); } logger.LogError($"При изменении консультации произошла ошибка: " + $"Консультация с id = {id} не найдена в базе данных"); return(View("Error", new ErrorViewModel { Message = $"При изменении консультации произошла ошибка: " + $"Консультация с id = {id} не найдена в базе данных" })); } catch (Exception e) { logger.LogCritical($"Произошла ошибка при обновлении данных консультации с id = {id}" + $" пациента с id = {consultation.PatientId}", e); return(View("Error", new ErrorViewModel { Message = $"Произошла ошибка. Не удалось обновить данные консультации с id = {id}" + $" пациента с id = {consultation.PatientId}. Обратитесь к администратору." })); } }
/// <summary> /// adds an instance of type Visit to a patient with /// given id and saves that to DB /// </summary> /// <param name="PatientId"></param> /// <param name="visit"></param> public static void AddVisit(int PatientId, Visit visit) { using (var ctx = new PatientsContext()) { Patient patient = ctx.Patients.Find(PatientId); patient.LastVisitDate = visit.VisitDate; patient.Visits.Add(visit); List <Visit> visits = patient.Visits.OrderByDescending(m => m.VisitDate).ToList(); patient.LastVisitDate = visits[0].VisitDate; ctx.Entry(patient).State = EntityState.Modified; ctx.SaveChanges(); } }
/// <summary> /// Saves changes DB in list of instance of type Tooth for /// certain patient with given id /// </summary> /// <param name="patientId"></param> /// <param name="conditions">list of new conditions</param> public static void SaveTeeth(int patientId, List <string> conditions) { using (var ctx = new PatientsContext()) { Patient patient = ctx.Patients.Find(patientId); if (patient.Teeth.Count == conditions.Count) { List <Tooth> teeth = patient.Teeth.ToList(); for (int i = 0; i < conditions.Count; i++) { teeth[i].Description = conditions[i]; } patient.Teeth = teeth; ctx.Entry(patient).State = EntityState.Modified; ctx.SaveChanges(); } } }
public ActionResult Edit(int id, Patient patient) { if (ModelState.IsValid) { var _patient = patientContext.Patients.Find(id); if (_patient != null) { patient.PatientId = id; patientContext.Entry(_patient).CurrentValues.SetValues(patient); patientContext.SaveChanges(); logger.LogInformation($"Изменен пациент с id = {id}."); return(Ok(new { isSuccess = true, ErrorMessage = "", StatusCode = 201, Result = id })); } logger.LogError($"Пациент с id = {id} не найден в базе данных."); return(NotFound(new { isSucces = false, ErrorMessage = $"Пациент с id = {id} не найден в базе данных", StatusCode = 404, Result = "" })); } logger.LogError($"При изменении данных пациента с id = {id} данные не были получены от клиента, или они не прошли валидацию."); return(BadRequest(new { isSucces = false, ErrorMessage = "Полученные данные не прошли валидацию.", StatusCode = 400, Result = "" })); }
public ActionResult Edit(int id, Consultation consultation) { if (ModelState.IsValid) { var _consultation = patientContext.Consultations.Find(id); if (_consultation != null) { consultation.ConsultationId = id; consultation.PatientId = _consultation.PatientId; patientContext.Entry(_consultation).CurrentValues.SetValues(consultation); patientContext.SaveChanges(); logger.LogInformation($"Изменена консультация с id = {id} пациента с id = {consultation.PatientId}."); return(Ok(new { isSuccess = true, ErrorMessage = "", StatusCode = 201, Result = id })); } logger.LogError($"Консультация с id = {id} не найдена в базе данных."); return(NotFound(new { isSucces = false, ErrorMessage = $"Консультация с id = {id} не найдена в базе данных.", StatusCode = 404, Result = "" })); } logger.LogError($"При изменении данных консультации с id = {id} данные не были получены от клиента, или они не прошли валидацию."); return(BadRequest(new { isSucces = false, ErrorMessage = "Полученные данные не прошли валидацию.", StatusCode = 400, Result = "" })); }
public IActionResult Edit(int id, Patient patient) { try { if (patient == null) { logger.LogError($"При изменении пациента с id = {id} произошла ошибка связывания модели"); return(View("Error", new ErrorViewModel { Message = $"При изменении пациента с id = {id} произошла ошибка связывания модели" })); } var _patient = patientContext.Patients.Find(id); if (_patient != null) { if (patient.BirthDate < DateTime.Parse("01/01/1880") || patient.BirthDate > DateTime.Now.AddYears(1)) { logger.LogError($"При изменения пациента с id = {id} произошла ошибка: " + $"Недопустимая дата: {patient.BirthDate}"); ModelState.AddModelError("BirthDate", $"Дата рождения должна быть в промежутке" + $" от {DateTime.Parse("01/01/1880").ToString("d")} до {DateTime.Now.AddYears(1).ToString("d")}"); return(View(patient)); } patient.PensionNumber = Regex.Replace(patient.PensionNumber, "[^0-9]", ""); var pensionCheck = patientContext.Patients .Where(x => x.PensionNumber == patient.PensionNumber) .FirstOrDefault(); if (pensionCheck == null || pensionCheck.PatientId == id) { patientContext.Entry(_patient).CurrentValues.SetValues(patient); patientContext.SaveChanges(); logger.LogInformation($"Пациент с id = {id} был изменен"); return(RedirectToAction("Get", "Patient", new { id = patient.PatientId, message = "Пациент успешно изменен" })); } else { logger.LogWarning($"При изменении пациента с id = {id} произошла ошибка: " + $"Был обнаружен пациент с таким же СНИЛС = {patient.PensionNumber}"); ModelState.AddModelError("PensionNumber", "Пациент с таким СНИЛС уже существует"); return(View(patient)); } } logger.LogError($"При попытке изменения пациент с id = {id} был не найден в базе данных"); return(View("Error", new ErrorViewModel { Message = $"При попытке изменения пациент с id = {id} был не найден в базе данных" })); } catch (Exception e) { logger.LogCritical($"Произошла ошибка при обновлении данных пациента с id = {id}", e); return(View("Error", new ErrorViewModel { Message = $"Произошла ошибка. Не удалось обновить данные пациента с id = {id}." + " Обратитесь к администратору." })); } }