private void InitializeMonthlyCalendar(int year, int month) { DateTime DateDay; DateTime MonthStart = new DateTime(); DateTime MonthEnd = new DateTime(); int MonthDayCount = 0; int day = 0; string DayWithDateDay = string.Empty; string DayWeek = string.Empty; System.Globalization.PersianCalendar pc = new System.Globalization.PersianCalendar(); GregorianCalendar gCal = new GregorianCalendar(); ComponentArt.Web.UI.GridColumn DateColumn = null; IList <GTS.Clock.Model.Concepts.Calendar> calendarlist = null; switch (BLanguage.CurrentSystemLanguage) { case LanguagesName.Parsi: MonthDayCount = pc.GetDaysInMonth(year, month); MonthStart = pc.ToDateTime(year, month, 1, 0, 0, 0, 0); MonthEnd = pc.ToDateTime(year, month, MonthDayCount, 0, 0, 0, 0); calendarlist = this.CalendarTypeBusiness.GetMonthlyHoliday(MonthStart, MonthEnd); for (int i = 1; i <= MonthDayCount; i++) { DateDay = pc.ToDateTime(year, month, i, 0, 0, 0, 0); DayOfWeek Day = pc.GetDayOfWeek(DateDay); string DateDayPersian = Utility.ToPersianDate(DateDay); day = GetDayOfWeek(Day); DayWeek = this.GetAxises_Calendar(day); DayWithDateDay = DayWeek + " " + DateDayPersian; DateColumn = new ComponentArt.Web.UI.GridColumn(); DateColumn.HeadingText = DayWithDateDay; DateColumn.DefaultSortDirection = GridSortDirection.Ascending; DateColumn.Align = ComponentArt.Web.UI.TextAlign.Center; DateColumn.Width = 75; DateColumn.DataField = "Day" + i; GTS.Clock.Model.Concepts.Calendar calendar = calendarlist.Where(x => x.Date == DateDay).FirstOrDefault(); if (calendar != null) { DateColumn.HeadingTextCssClass = "HeadingTextRed"; } else { DateColumn.HeadingTextCssClass = "HeadingText"; } this.GridMonthlyExceptionShifts_MonthlyExceptionShifts.Levels[0].Columns.Add(DateColumn); } DateColumn = new ComponentArt.Web.UI.GridColumn(); DateColumn.AllowSorting = InheritBool.False; DateColumn.DataCellClientTemplateId = "EditTemplate"; DateColumn.EditControlType = GridColumnEditControlType.EditCommand; DateColumn.Width = 50; DateColumn.Align = ComponentArt.Web.UI.TextAlign.Center; this.GridMonthlyExceptionShifts_MonthlyExceptionShifts.Levels[0].Columns.Add(DateColumn); break; case LanguagesName.English: MonthDayCount = gCal.GetDaysInMonth(year, month); MonthStart = gCal.ToDateTime(year, month, 1, 0, 0, 0, 0); MonthEnd = gCal.ToDateTime(year, month, MonthDayCount, 0, 0, 0, 0); calendarlist = this.CalendarTypeBusiness.GetMonthlyHoliday(MonthStart, MonthEnd); for (int i = 1; i <= MonthDayCount; i++) { DateDay = gCal.ToDateTime(year, month, i, 0, 0, 0, 0); DayOfWeek Day = gCal.GetDayOfWeek(DateDay); day = GetDayOfWeek(Day); DayWeek = this.GetAxises_Calendar(day); DayWithDateDay = DayWeek + " " + DateDay; DateColumn = new ComponentArt.Web.UI.GridColumn(); DateColumn.HeadingText = DayWithDateDay; DateColumn.DefaultSortDirection = GridSortDirection.Ascending; DateColumn.Align = ComponentArt.Web.UI.TextAlign.Center; DateColumn.Width = 75; DateColumn.DataField = "Day" + i; GTS.Clock.Model.Concepts.Calendar calendar = calendarlist.Where(x => x.Date == DateDay).FirstOrDefault(); if (calendar != null) { DateColumn.HeadingTextCssClass = "HeadingTextRed"; } else { DateColumn.HeadingTextCssClass = "HeadingText"; } this.GridMonthlyExceptionShifts_MonthlyExceptionShifts.Levels[0].Columns.Add(DateColumn); } DateColumn = new ComponentArt.Web.UI.GridColumn(); DateColumn.AllowSorting = InheritBool.False; DateColumn.DataCellClientTemplateId = "EditTemplate"; DateColumn.EditControlType = GridColumnEditControlType.EditCommand; DateColumn.Width = 50; DateColumn.Align = ComponentArt.Web.UI.TextAlign.Center; this.GridMonthlyExceptionShifts_MonthlyExceptionShifts.Levels[0].Columns.Add(DateColumn); break; } }