Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        private DmvBestVisitTime GetDmvBestVisitTime(KeyValuePair <int, Dictionary <DateTime, int> > branchInfo)
        {
            DmvBestVisitTime dmvBestVisitTime = new DmvBestVisitTime
            {
                BranchId = branchInfo.Key
            };

            GetBestVisitTime(dmvBestVisitTime, branchInfo.Value);

            return(dmvBestVisitTime);
        }
Esempio n. 3
0
        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);
                }
            }
        }