private HistoricalVisitDto HideDoctorsEgn(HistoricalVisitDto historicalVisit) { if (IsUserInRole(User, UserRole.Patient)) { historicalVisit.Doctor.Egn = "HIDDEN"; } return(historicalVisit); }
public void CreateNewVisit([FromBody] HistoricalVisitDto historicalVisitDto) { EnsureNotInRole(User, UserRole.Patient, Messages.PatientCannotCreateVisit); Execute(dataContext => { var visit = Map <HistoricalVisitDto, HistoricalVisit>(historicalVisitDto); if (IsUserInRole(User, UserRole.Doctor)) { if (!dataContext.SysUsers.First(user => user.Username.Equals(User.Identity.Name)).Doctors .Any(doctor => doctor.Guid.Equals(visit.DoctorId))) { throw GetResponseException(HttpStatusCode.Forbidden, Messages.DoctorNotAllowedToPostVisitOnOtherDoctors); } } if (IsUserInRole(User, UserRole.Hospital)) { if (!dataContext.SysUsers.First(user => user.Username.Equals(User.Identity.Name)).Hospitals .Any(hospital => hospital.Guid.Equals(visit.HospitalId))) { throw GetResponseException(HttpStatusCode.Forbidden, Messages.HospitalNotAllowedToPostVisitationOnOtherHospitals); } } if (!dataContext.Patients.Any(patient => patient.Guid.Equals(visit.PatientId))) { throw GetResponseException(HttpStatusCode.NotFound, Messages.PatientDoesNotExist); } if (!dataContext.Doctors.Any(doctor => doctor.Guid.Equals(visit.DoctorId))) { throw GetResponseException(HttpStatusCode.NotFound, Messages.DoctorDoesNotExist); } if (!dataContext.Hospitals.Any(hospital => hospital.Guid.Equals(visit.HospitalId))) { throw GetResponseException(HttpStatusCode.NotFound, Messages.HospitalDoesNotExist); } if (!dataContext.Hospitals.First(hospital => hospital.Guid.Equals(visit.HospitalId)).HospitalDoctors .Any(hospitalDoctorLink => hospitalDoctorLink.DoctorId.Equals(visit.DoctorId))) { throw GetResponseException(HttpStatusCode.NotFound, Messages.DoctorNotPartOfHospitalForVisitation); } visit.Guid = Guid.Empty; dataContext.HistoricalVisits.InsertOnSubmit(visit); dataContext.SubmitChanges(); }); }
private static void UpdateExistingVisitFields(Guid id, HistoricalVisitDto historicalVisitDto, PersistenceClassesDataContext dataContext) { var visit = dataContext.HistoricalVisits.FirstOrDefault(r => r.Guid.Equals(id)); if (visit == null) { throw GetResponseException(HttpStatusCode.NotFound, Messages.VisitDoesNotExist); } if (historicalVisitDto.VisitTime != DateTime.MinValue) { visit.VisitTime = historicalVisitDto.VisitTime; } dataContext.SubmitChanges(); }
public void UpdateVisit(Guid id, HistoricalVisitDto historicalVisitDto) { EnsureNotInRole(User, UserRole.Patient, Messages.PatientCannotModifyVisitation); Execute(dataContext => UpdateExistingVisitFields(id, historicalVisitDto, dataContext)); }