Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        /// <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);
            }
        }