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); }
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); }