Example #1
0
        public AverageDurationDTO SuccessfulSchedulingAgeDuration()
        {
            AverageDurationDTO averageDTO = new AverageDurationDTO();

            try
            {
                int averageAge = (int)_patientEndSchedulingEventRepository.GetAll().Average(e => e.UserAge);

                IEnumerable <PatientEndSchedulingEvent> successfulScheduling = _patientEndSchedulingEventRepository.GetAll
                                                                                   (e => e.ReasonForEndOfAppointment == ReasonForEndOfAppointment.Success);

                IEnumerable <TimeSpan> youthDuration = successfulScheduling.Where(e => e.UserAge < averageAge)
                                                       .Select(e => e.TriggerTime - e.StartSchedulingEventTime);
                IEnumerable <TimeSpan> elderDuration = successfulScheduling.Where(e => e.UserAge >= averageAge)
                                                       .Select(e => e.TriggerTime - e.StartSchedulingEventTime);

                averageDTO.DurationFirst  = (int)youthDuration.DefaultIfEmpty().Average(t => t.TotalMinutes);
                averageDTO.DurationSecond = (int)elderDuration.DefaultIfEmpty().Average(t => t.TotalMinutes);
            }
            catch (Exception)
            {
                return(new AverageDurationDTO());
            }

            return(averageDTO);
        }
Example #2
0
        public AverageDurationDTO UnsuccessfulSchedulingGenderDuration()
        {
            AverageDurationDTO averageDTO = new AverageDurationDTO();

            try
            {
                IEnumerable <PatientEndSchedulingEvent> unsuccessfulScheduling = _patientEndSchedulingEventRepository.GetAll
                                                                                     (e => e.ReasonForEndOfAppointment == ReasonForEndOfAppointment.Unsuccess);

                IEnumerable <TimeSpan> womenDuration = unsuccessfulScheduling.Where(e => e.UserGender == Gender.Female)
                                                       .Select(e => e.TriggerTime - e.StartSchedulingEventTime);
                IEnumerable <TimeSpan> menDuration = unsuccessfulScheduling.Where(e => e.UserGender == Gender.Male)
                                                     .Select(e => e.TriggerTime - e.StartSchedulingEventTime);

                averageDTO.DurationFirst  = (int)womenDuration.DefaultIfEmpty().Average(t => t.TotalMinutes);
                averageDTO.DurationSecond = (int)menDuration.DefaultIfEmpty().Average(t => t.TotalMinutes);
            }
            catch (Exception)
            {
                return(new AverageDurationDTO());
            }

            return(averageDTO);
        }