public List <ExaminationDTO> Search(BusinessDayDTO businessDayDTO) { if (AuthorizedUsers["Search"].SingleOrDefault(any => any.Equals(Role)) != null) { return(BusinessDayController.Search(businessDayDTO)); } return(null); }
private List <ExaminationDTO> AlternativeForDoctor(BusinessDayDTO businessDayDTO, IEnumerable <BusinessDay> businessDayCollection) { foreach (BusinessDay day in businessDayCollection.ToList()) { if (day.Shift.EndDate >= businessDayDTO.Period.StartDate && day.Shift.EndDate <= businessDayDTO.Period.EndDate) { List <ExaminationDTO> examinationDTOCollection = CreateExaminationDTO(day); if (examinationDTOCollection != null) { return(examinationDTOCollection); } } } return(null); }
public List <ExaminationDTO> Search(BusinessDayDTO businessDayDTO, List <BusinessDay> businessDayCollection) { List <BusinessDay> IterationDays = DaysForExactPeriod(businessDayDTO.Period, businessDayDTO.Doctor.BusinessDay); if (IterationDays != null) { foreach (BusinessDay day in IterationDays) { List <ExaminationDTO> examinationDTOCollection = CreateExaminationDTO(day); if (examinationDTOCollection != null) { return(examinationDTOCollection); } } } return(AlternativeForDoctor(businessDayDTO, businessDayCollection.Except(IterationDays))); }
public List <ExaminationDTO> Search(BusinessDayDTO businessDayDTO, List <BusinessDay> businessDayCollection) { List <BusinessDay> IterationDays = DaysForExactPeriod(businessDayDTO.Period, businessDayDTO.Doctor.BusinessDay); if (IterationDays != null) { foreach (BusinessDay day in IterationDays) { List <ExaminationDTO> retVal = CreateExaminationDTO(day); if (retVal != null) { return(retVal); } } } return(null); }
public List <ExaminationDTO> OperationSearch(BusinessDayDTO businessDayDTO, double durationOfOperation) { List <ExaminationDTO> retVal = new List <ExaminationDTO>(); _searchPeriods = new NoPrioritySearch(); List <ExaminationDTO> timeSlots = Search(businessDayDTO); if (timeSlots == null) { return(null); } double MinutesFree = 0; foreach (ExaminationDTO examinationDTO in timeSlots) { if (retVal.Count == 0) { retVal.Add(examinationDTO); MinutesFree = MinutesFree + durationOfExamination; } else { if (retVal.SingleOrDefault(any => any.Period.StartDate.AddMinutes(durationOfExamination) == examinationDTO.Period.StartDate) != null) { retVal.Add(examinationDTO); MinutesFree += durationOfExamination; } else { retVal.Clear(); retVal.Add(examinationDTO); MinutesFree = durationOfExamination; } } if (durationOfOperation == MinutesFree) { break; } } return(retVal); }
public List <ExaminationDTO> Search(BusinessDayDTO businessDayDTO) { TimeSpan difference = businessDayDTO.Period.StartDate - DateTime.Now; if (difference.Days <= Double.Parse(ConfigurationSettings.AppSettings["scheduleRestriction"])) { if (businessDayDTO.PatientScheduling) { if (_searchPeriods.GetType() != typeof(NoPrioritySearch)) { businessDayDTO.Period.StartDate = businessDayDTO.Period.StartDate.AddDays(Double.Parse(ConfigurationSettings.AppSettings["scheduleRestriction"])); } else { return(null); } } } businessDayDTO.Doctor = doctorService.Get(businessDayDTO.Doctor.GetId()); List <BusinessDay> businessDayCollection = _businessDayRepository.GetAllEager().ToList(); return(_searchPeriods.Search(businessDayDTO, businessDayCollection)); }
public List <ExaminationDTO> Search(BusinessDayDTO businessDayDTO) { return(_businessDayService.Search(businessDayDTO)); }