/// <summary>
        /// Get last week first and last business days
        /// </summary>
        /// <param name="lastweek">Enum for first or last</param>
        /// <returns>The requested date</returns>
        private string GetSpecificDate(LastWeek lastweek)
        {
            int      dayWeek = (int)DateTime.Now.DayOfWeek;
            DateTime dateToFind;
            int      daysToAdd = 0;

            try
            {
                if (lastweek == LastWeek.FirstDay)
                {
                    dateToFind = DateTime.Now.AddDays((dayWeek + 6) * -1);
                    if (holidays.Contains(dateToFind))
                    {
                        daysToAdd = 1;
                    }
                }
                else
                {
                    dateToFind = DateTime.Now.AddDays((dayWeek + 2) * -1);
                    if (holidays.Contains(dateToFind))
                    {
                        daysToAdd = -1;
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Log("Cannot get Specific date", Logger.LogType.Error);
                throw new Exception("Cannot get specific date" + ex.Message);
            }
            return(dateToFind.AddDays(daysToAdd).ToString("ddMMM").ToUpper());
        }
        protected override void OnInitialized()
        {
            ThisWeek = GetIssuesForDate(DateTime.UtcNow.Date);
            LastWeek = GetIssuesForDate(DateTime.UtcNow.AddDays(-7).Date);

            TotalOpenCount      = ThisWeek.Count;
            ClosedThisWeekCount = LastWeek.Except(ThisWeek, IssueEntityComparer.Instance).Count();
            OpenedThisWeekCount = ThisWeek.Except(LastWeek, IssueEntityComparer.Instance).Count();

            GridData = new List <Row>(Math.Max(LastWeek.Count, ThisWeek.Count));

            if (LastWeek is object && ThisWeek is object)
            {
                int i = 0, j = 0;
                for (; i < LastWeek.Count && j < ThisWeek.Count;)
                {
                    if (LastWeek[i].Number == ThisWeek[j].Number)
                    {
                        GridData.Add(new Row(LastWeek[i++].Number, ThisWeek[j++].Number));
                    }
                    else if (LastWeek[i].Number < ThisWeek[j].Number)
                    {
                        GridData.Add(new Row(LastWeek[i++].Number, null));
                    }
                    else if (LastWeek[i].Number > ThisWeek[j].Number)
                    {
                        GridData.Add(new Row(null, ThisWeek[j++].Number));
                    }
                    else
                    {
                        throw new InvalidOperationException("Shouldn't Happen");
                    }
                }

                for (; i < LastWeek.Count;)
                {
                    GridData.Add(new Row(LastWeek[i++].Number, null));
                }
                for (; j < ThisWeek.Count;)
                {
                    GridData.Add(new Row(null, ThisWeek[j++].Number));
                }
            }
        }