private void GetBestVisitTime(DmvBestVisitTime dmvBestVisitTime, Dictionary <DateTime, int> dateTimeWaitTimeDictionary) { Dictionary <Time, List <int> > timeWaitTimeDictionary = new Dictionary <Time, List <int> >(); Dictionary <DayTime, List <int> > dayTimeWaitTimeDictionary = new Dictionary <DayTime, List <int> >(); FillDictionaries(timeWaitTimeDictionary, dayTimeWaitTimeDictionary, dateTimeWaitTimeDictionary); CalculateBestVisitTime(dmvBestVisitTime, timeWaitTimeDictionary, dayTimeWaitTimeDictionary); }
private DmvBestVisitTime GetDmvBestVisitTime(KeyValuePair <int, Dictionary <DateTime, int> > branchInfo) { DmvBestVisitTime dmvBestVisitTime = new DmvBestVisitTime { BranchId = branchInfo.Key }; GetBestVisitTime(dmvBestVisitTime, branchInfo.Value); return(dmvBestVisitTime); }
private void CalculateBestVisitTime(DmvBestVisitTime dmvBestVisitTime, Dictionary <Time, List <int> > timeWaitTimeDictionary, Dictionary <DayTime, List <int> > dayTimeWaitTimeDictionary) { foreach (var timeWaitTime in timeWaitTimeDictionary) { double average = timeWaitTime.Value.Average(); if (timeWaitTime.Key.Hour <= 9 || timeWaitTime.Key.Hour >= 17) { continue; } if (dmvBestVisitTime.BestTimeOfDayWaitInMinute == null || dmvBestVisitTime.BestTimeOfDayWaitInMinute > average) { dmvBestVisitTime.BestTimeOfDay = timeWaitTime.Key; dmvBestVisitTime.BestTimeOfDayWaitInMinute = Convert.ToInt32(average); } } foreach (var dayTimeWaitTime in dayTimeWaitTimeDictionary) { double average = dayTimeWaitTime.Value.Average(); if (dayTimeWaitTime.Key.Time.Hour <= 9 || dayTimeWaitTime.Key.Time.Hour >= 17) { continue; } if (dmvBestVisitTime.BestDateTimeOfWeekWaitInMinute == null || dmvBestVisitTime.BestDateTimeOfWeekWaitInMinute > average) { dmvBestVisitTime.BestDateTimeOfWeek = dayTimeWaitTime.Key; dmvBestVisitTime.BestDateTimeOfWeekWaitInMinute = Convert.ToInt32(average); } } }