private void SetControlsInCells(DataTable list, int indexOfCalender, int year, int month, int day, LinkButton linkbutton, int LnkBtnID, Table tb, int dayOfWeek, int weekOfMonth) { var classes = from obj in list.AsEnumerable() where Convert.ToDateTime((DateTime)obj["ScheduleDate"]).Year == year && Convert.ToDateTime((DateTime)obj["ScheduleDate"]).Month == month && Convert.ToDateTime((DateTime)obj["ScheduleDate"]).Day == day select new { ID = obj["ID"], SessionName = obj["SessionName"], ScheduleDate = obj["ScheduleDate"], StartTime = obj["StartTime"], EndTime = obj["EndTime"], VenueName = obj["VenueName"], ClassName = obj["ClassTitle"], TrainerID = obj["TrainerID"], VenueID = obj["VenueID"], ClassID = obj["ClassID"], FullName = obj["FullName"], StartDate = obj["StartDate"], EndDate = obj["EndDate"], CourseName = obj["CourseName"] }; foreach (var clss in classes) { Label lbl = new Label(); LinkButton LnkClass = new LinkButton(); LinkButton LnkTrainer = new LinkButton(); LinkButton LnkVenue = new LinkButton(); LnkClass.ID = "Lnk_" + indexOfCalender.ToString() + clss.ClassID.ToString() + "_" + clss.ID.ToString() + (LnkBtnID++).ToString(); LnkTrainer.ID = "Lnk_" + indexOfCalender.ToString() + "_" + clss.TrainerID.ToString() + "_" + clss.ID.ToString() + (LnkBtnID++).ToString(); LnkVenue.ID = "Lnk_" + indexOfCalender.ToString() + "_" + clss.VenueID.ToString() + "_" + clss.ID.ToString() + (LnkBtnID++).ToString(); //LnkClass.Text = clss.ClassName.ToString() + "<br/>"; //LnkTrainer.Text = clss.FullName.ToString() + "<br/>"; //LnkVenue.Text = clss.SessionName.ToString() + "<br/>"; //string PageUrl = UtilityFunctions.GetPageUrl("Page_Class_ClassDetailView"); //LnkClass.PostBackUrl = UtilityFunctions.AddQuerystringVar(PageUrl, "clid", clss.ClassID.ToString()); //PageUrl = UtilityFunctions.GetPageUrl("Page_Person_PersonDetailView"); //PageUrl = UtilityFunctions.AddQuerystringVar(PageUrl, "pid", clss.TrainerID.ToString()); //LnkTrainer.PostBackUrl = UtilityFunctions.AddQuerystringVar(PageUrl, "pt", "2"); //PageUrl = UtilityFunctions.GetPageUrl("Page_Session_SessionDetailView"); //LnkVenue.PostBackUrl = UtilityFunctions.AddQuerystringVar(PageUrl, "sid", clss.ID.ToString()); //LnkClass.ToolTip = TrainingResourceManager.GetLabel("Timetable_ViewClassDetails"); //LnkTrainer.ToolTip = TrainingResourceManager.GetLabel("Timetable_ViewTrainerDetails"); //LnkVenue.ToolTip = TrainingResourceManager.GetLabel("Timetable_ViewSessionDetails"); //if (Convert.ToDateTime(clss.ScheduleDate) < DateTime.Now.Date) // lbl.BackColor = System.Drawing.ColorTranslator.FromHtml("#75A041"); //else if (Convert.ToDateTime(clss.ScheduleDate) == DateTime.Now.Date) // lbl.BackColor = System.Drawing.ColorTranslator.FromHtml("#D3E499"); //else // lbl.BackColor = System.Drawing.ColorTranslator.FromHtml("#A3FF85"); lbl.ToolTip = clss.ClassName.ToString(); lbl.Text = Convert.ToDateTime(clss.StartTime).ToShortTimeString() + " - " + Convert.ToDateTime(clss.EndTime).ToShortTimeString() + " <br /> "; //lbl.Text = Convert.ToDateTime(clss.ScheduleDate).ToShortDateString() + "<br/>" + Convert.ToDateTime(clss.StartTime).TimeOfDay.ToString() + " - " + Convert.ToDateTime(clss.EndTime).TimeOfDay.ToString().ToString() + "<br/>"; //lbl.ForeColor = System.Drawing.Color.Black; if (MyColorList.Count(c => c.Name == clss.ClassName.ToString()) <= 0) { randomColor = UtilityFunctions.GetRandomColor(myColors); myColors.Add(randomColor); string _Name = string.Empty; _Name = clss.CourseName + " "; _Name += " <br /> " + UtilityFunctions.GetShortDateString(Convert.ToDateTime(clss.StartDate)) + " - " + UtilityFunctions.GetShortDateString(Convert.ToDateTime(clss.EndDate)); //_Name += UtilityFunctions.GetShortDateString(Convert.ToDateTime(clss.ScheduleDate)) + " " + Convert.ToDateTime(clss.StartTime).TimeOfDay.ToString() + " - " + Convert.ToDateTime(clss.EndTime).TimeOfDay.ToString().ToString() + " <br /> "; //var Trainers = from obj in list.AsEnumerable() // where Convert.ToInt64(obj["ClassID"]) == Convert.ToInt64(clss.ClassID) // && Convert.ToDateTime((DateTime)obj["ScheduleDate"]).Year == year && Convert.ToDateTime((DateTime)obj["ScheduleDate"]).Month == month // select new // { // FullName = obj["FullName"], // }; //string[] _TrainersOfClass = (from t in Trainers select t.FullName.ToString()).Distinct().ToArray(); long _ClssID = (long)clss.ClassID; string[] _TrainersOfClass = (from c in classes where Convert.ToInt64(c.ClassID) == _ClssID select c.FullName.ToString()).Distinct().ToArray(); foreach (string _S in _TrainersOfClass) { //_Name += " <br /> " + (Array.IndexOf(_TrainersOfClass, _S) + 1) + ") " + _S; _Name += " <br /> " + _S; } //_Name += " <br /> "; MyColorList.Add(new MyColor() { Name = clss.ClassName.ToString(), DisplayName = _Name, Color = ColorTranslator.ToHtml(randomColor) }); } else { randomColor = ColorTranslator.FromHtml(MyColorList.FirstOrDefault(c => c.Name == clss.ClassName.ToString()).Color); MyColor myColor = MyColorList.FirstOrDefault(c => c.Name == clss.ClassName.ToString()); if (myColor != null && myColor.Name != null && myColor.Name != string.Empty) { string _TrainerName = string.Empty; long _ClssID = (long)clss.ClassID; string[] _TrainersOfClass = (from c in classes where Convert.ToInt64(c.ClassID) == _ClssID select c.FullName.ToString()).Distinct().ToArray(); foreach (string _S in _TrainersOfClass) { _TrainerName = _TrainerName.Replace(" <br /> " + _S, ""); myColor.DisplayName = myColor.DisplayName.Replace(" <br /> " + _S, ""); _TrainerName += " <br /> " + _S; } //_TrainerName += " <br /> "; myColor.DisplayName += _TrainerName; } } lbl.BackColor = randomColor; lbl.CssClass = "ScheduleSessionName"; LnkClass.BackColor = randomColor; tb.Rows[dayOfWeek].Cells[weekOfMonth].Controls.Add(lbl); //tb.Rows[dayOfWeek].Cells[weekOfMonth].Controls.Add(LnkVenue); //tb.Rows[dayOfWeek].Cells[weekOfMonth].Controls.Add(LnkClass); //tb.Rows[dayOfWeek].Cells[weekOfMonth].Controls.Add(LnkTrainer); linkbutton.ID = "Lnk_" + indexOfCalender.ToString() + "_" + clss.ID.ToString() + "_" + clss.ClassID.ToString(); linkbutton.Enabled = false; LnkClass.Enabled = true; LnkTrainer.Enabled = true; LnkVenue.Enabled = true; } }
/// <summary> /// <para>Description: /// This Method loads Venue details from database and draw the plots on the chart for the selected dated, will draw each plot /// in diffrent colors. On the top of the report it will highlight the colors with details.</para> /// <para>Created By: Tanweer </para> /// <para>Created Date: 9/23/2013 </para> /// </summary> /// <param name="year"></param> /// <param name="month"></param> /// <param name="dtStart"></param> /// <param name="dtEnd"></param> /// <param name="eventName"></param> private void DrawEvents(int year, int month, DateTime dtStart, DateTime dtEnd, string eventName) { int StartRowIndex = 0; int EndRowIndex = 0; int StartColIndex = 0; int EndColIndex = 0; DateTime dtTemp; //get random color if (isNewClass) { randomColor = UtilityFunctions.GetRandomColor(myColors); myColors.Add(randomColor); } string t = string.Empty; try { foreach (GridViewRow row in gvEvents.Rows) { t = row.Cells[0].Text; for (int i = 0; i < gvEvents.HeaderRow.Cells.Count; i++) { string h = gvEvents.HeaderRow.Cells[i].Text; if (i > 0) { string day = h; dtTemp = new DateTime(year, month, Convert.ToInt32(day)); string tempStr = dtTemp.ToShortDateString() + " " + t; dtTemp = Convert.ToDateTime(tempStr); if (dtTemp.Date >= dtStart.Date && dtTemp.Date <= dtEnd.Date) { if (dtTemp.TimeOfDay >= dtStart.TimeOfDay && dtTemp.TimeOfDay <= dtEnd.TimeOfDay) { //add to list if (isNewClass) { if (MyColorList.Where(x => x.Color == ColorTranslator.ToHtml(randomColor)).Count() == 0) { MyColorList.Add(new MyColor { Name = eventName + "##", Color = ColorTranslator.ToHtml(randomColor) }); totalClass++; } } MyColorList[totalClass - 1].Name = MyColorList[totalClass - 1].Name.Replace("##", "Total session(s): #*#" + sessionCount); string temp = MyColorList[totalClass - 1].Name; temp = temp.Remove(temp.IndexOf("#*#")); MyColorList[totalClass - 1].Name = temp + "#*#" + sessionCount; row.Cells[i].BackColor = randomColor; row.Cells[i].ToolTip = (eventName + "<br>" + sessionName).Replace("<br>", "\n") + "\n(" + dtStart + " to " + dtEnd + ")"; row.Cells[i].Style.Add("cursor", "pointer"); if (StartRowIndex == 0) { StartRowIndex = row.RowIndex; } if (StartColIndex == 0) { StartColIndex = i; } EndRowIndex = row.RowIndex; EndColIndex = i; } } } } } } catch (Exception ex) { // ExceptionHandler.HandleTrainingException(ex, "DrawEvents", false); } //colspan and rowspan try { foreach (GridViewRow trow in gvEvents.Rows) { if (trow.RowIndex >= StartRowIndex && trow.RowIndex <= EndRowIndex) { for (int i = 0; i < trow.Cells.Count; i++) { if (i >= StartColIndex && i <= EndColIndex) { if (trow.RowIndex == StartRowIndex && i == StartColIndex) { continue; } trow.Cells[i].Visible = false; } } } } gvEvents.Rows[StartRowIndex].Cells[StartColIndex].RowSpan = EndRowIndex - StartRowIndex + 1; gvEvents.Rows[StartRowIndex].Cells[StartColIndex].ColumnSpan = EndColIndex - StartColIndex + 1; // gvEvents.Rows[StartRowIndex].Cells[StartColIndex].Text = eventName; //gvEvents.Rows[StartRowIndex].Cells[StartColIndex].HorizontalAlign = HorizontalAlign.Center; } catch (Exception ex) { // ExceptionHandler.HandleTrainingException(ex, "DrawEvents", false); } }