コード例 #1
0
 public List <ExaminationDTO> Search(BusinessDayDTO businessDayDTO)
 {
     if (AuthorizedUsers["Search"].SingleOrDefault(any => any.Equals(Role)) != null)
     {
         return(BusinessDayController.Search(businessDayDTO));
     }
     return(null);
 }
コード例 #2
0
 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);
 }
コード例 #3
0
        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)));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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));
        }
コード例 #7
0
 public List <ExaminationDTO> Search(BusinessDayDTO businessDayDTO)
 {
     return(_businessDayService.Search(businessDayDTO));
 }