/// <summary>
        /// Get the list of successful login and the number of total session time in specific duration
        /// Get average session duration by dividing the total session duration by number of successful login
        /// return the dictionary that contains months and average session duration per month
        /// </summary>
        /// <returns></returns>
        public IDictionary <string, double> GetAverageSessionDuration()
        {
            int numOfMonth = BusinessRuleConstants.GetAverageSessionDuration_NumOfMonth; // 6
            int monthToday = DateTime.Today.Month;
            int yearToday  = DateTime.Today.Year;
            IDictionary <string, double> monthAvgSessionDuration = new Dictionary <string, double>();

            // Request the total session time for the number of months
            // Flaw: request the data to the database for numOfMonth(6) times, it slows down the performance
            for (int i = 0; i < numOfMonth; i++)
            {
                double avgSessionTime = _dashboardService.CountAverageSessionTime(monthToday, yearToday);
                monthAvgSessionDuration.Add(dateFormatConverter[monthToday], avgSessionTime);
                monthToday--;
                if (monthToday == 0)
                {
                    monthToday = 12; yearToday--;
                }
            }

            return(monthAvgSessionDuration);
        }