Exemplo n.º 1
0
        public int PeakDailyFooFallInLastMonth(List <string> dateList)
        {
            var date               = DateTime.Now;
            var previousMonth      = Convert.ToInt32(date.AddMonths(-1).Month.ToString());
            var previousMonthDates = new Dictionary <string, int>();

            var uniqueDateList = GetUniqueDateList(dateList);

            foreach (var i in uniqueDateList)
            {
                const string format        = "d/M/yyyy";
                var          convertedDate = DateTime.ParseExact(i, format, null);


                var convertedDateMonth = convertedDate.Month;
                if (convertedDateMonth == previousMonth)
                {
                    var myDate = convertedDate.ToString("d/M/yyyy");

                    var countFreq = CountDateFreq(myDate, dateList);
                    previousMonthDates.Add(myDate, countFreq);
                }
            }

            var peak = GetPeakInAMonth(previousMonthDates);

            Console.WriteLine(peak);

            var csvWriter = new WriteToCsvFile();

            csvWriter.FootfallLastMonthCsvFileWriter(previousMonth, peak);
            return(peak);
        }
Exemplo n.º 2
0
        public float GetAvgDailyFootfallInAWeek(string date, List <string> dateList)
        {
            var dateCount = new Dictionary <string, float>();

            const string format        = "d/M/yyyy";
            var          convertedDate = DateTime.ParseExact(date, format, null);

            var year  = convertedDate.Year;
            var month = convertedDate.Month;


            var daysInMonth = DateTime.DaysInMonth(year, month);

            for (var i = 0; i < daysInMonth; i++)
            {
                var nextDate = convertedDate.AddDays(i);
                var day      = (int)nextDate.DayOfWeek;

                if (day == 1)
                {
                    var myDate = nextDate.ToString("d/M/yyyy");

                    var countFreq = CountDateFreq(myDate, dateList);
                    dateCount.Add(myDate, countFreq);
                }
            }
            var addCountAvg = SumOfDateCountFreq(dateCount);

            var dailyAvgInAWeek = addCountAvg / dateCount.Count;

            Console.WriteLine(dailyAvgInAWeek);

            var          csvWriter = new WriteToCsvFile();
            const string filename  = "FootfallWeekCsv.csv";

            csvWriter.FootfallDayWeekCsvFileWriter(date, dailyAvgInAWeek, filename);
            return(dailyAvgInAWeek);
        }
Exemplo n.º 3
0
        public float GetAvgPerHourInADay(string date, List <string> dateList, List <string> hourList)
        {
            var myHourList = new List <string>();

            for (var i = 0; i < hourList.Count; i++)
            {
                if (date == dateList[i])
                {
                    myHourList.Add(hourList[i]);
                }
            }

            var myCountHour   = CountHours(myHourList);
            var hourAvgResult = myCountHour / 4;

            Console.WriteLine(hourAvgResult);

            var          csvWriter = new WriteToCsvFile();
            const string filename  = "FootfallDayCsv.csv";

            csvWriter.FootfallDayWeekCsvFileWriter(date, hourAvgResult, filename);

            return(hourAvgResult);
        }