private void BindDataGrid() { var culture = Thread.CurrentThread.CurrentCulture; var startDate = default(DateTime); // Start View Date Events Range var endDate = default(DateTime); // End View Date Events Range var objEvent = default(EventInfo); var objEventInfoHelper = new EventInfoHelper(ModuleId, TabId, PortalId, Settings); var editButtonVisible = false; // Set Date Range var dDate = SelectedDate.Date; startDate = dDate.AddDays(-1); endDate = dDate.AddDays(1); // Get Events/Sub-Calendar Events var getSubEvents = Settings.MasterEvent; _selectedEvents = objEventInfoHelper.GetEvents(startDate, endDate, getSubEvents, SelectCategory.SelectedCategory, SelectLocation.SelectedLocation, GetUrlGroupId(), GetUrlUserId()); _selectedEvents = objEventInfoHelper.ConvertEventListToDisplayTimeZone(_selectedEvents, GetDisplayTimeZoneId()); if (_selectedEvents.Count == 0) { lstEvents.Visible = false; divMessage.Visible = true; return; } lstEvents.Visible = true; divMessage.Visible = false; // Get Date Events (used for Multiday event) var dayEvents = default(ArrayList); dayEvents = objEventInfoHelper.GetDateEvents(_selectedEvents, dDate); var fmtEventTimeBegin = Settings.Templates.txtDayEventTimeBegin; if (string.IsNullOrEmpty(fmtEventTimeBegin)) { fmtEventTimeBegin = "g"; } var fmtEventTimeEnd = Settings.Templates.txtDayEventTimeEnd; if (string.IsNullOrEmpty(fmtEventTimeEnd)) { fmtEventTimeEnd = "g"; } var tmpDayDescription = Settings.Templates.txtDayEventDescription; var tmpDayLocation = Settings.Templates.txtDayLocation; if (Settings.Eventtooltipday) { toolTipManager.TargetControls.Clear(); } var colEvents = new ArrayList(); var lstEvent = default(EventListObject); foreach (EventInfo tempLoopVar_objEvent in dayEvents) { objEvent = tempLoopVar_objEvent; // If full enrollments should be hidden, ignore if (HideFullEvent(objEvent)) { continue; } var blAddEvent = true; if (Settings.Collapserecurring) { foreach (EventListObject tempLoopVar_lstEvent in colEvents) { lstEvent = tempLoopVar_lstEvent; if (lstEvent.RecurMasterID == objEvent.RecurMasterID) { blAddEvent = false; } } } if (blAddEvent) { var objCtlEventRecurMaster = new EventRecurMasterController(); var tcc = new TokenReplaceControllerClass(ModuleId, LocalResourceFile); var fmtRowEnd = ""; var fmtRowBegin = ""; fmtRowEnd = tcc.TokenParameters(fmtEventTimeEnd, objEvent, Settings); fmtRowBegin = tcc.TokenParameters(fmtEventTimeBegin, objEvent, Settings); lstEvent = new EventListObject(); lstEvent.EventID = objEvent.EventID; lstEvent.CreatedByID = objEvent.CreatedByID; lstEvent.OwnerID = objEvent.OwnerID; lstEvent.EventDateBegin = objEvent.EventTimeBegin; lstEvent.EventDateEnd = objEvent.EventTimeEnd; if (objEvent.DisplayEndDate) { lstEvent.TxtEventDateEnd = string.Format("{0:" + fmtRowEnd + "}", lstEvent.EventDateEnd); } else { lstEvent.TxtEventDateEnd = ""; } lstEvent.EventTimeBegin = objEvent.EventTimeBegin; lstEvent.TxtEventTimeBegin = string.Format("{0:" + fmtRowBegin + "}", lstEvent.EventTimeBegin); lstEvent.Duration = objEvent.Duration; var isEvtEditor = IsEventEditor(objEvent, false); var templatedescr = ""; var iconString = ""; if (!IsPrivateNotModerator || UserId == objEvent.OwnerID) { templatedescr = tcc.TokenReplaceEvent(objEvent, tmpDayDescription, null, false, isEvtEditor); lstEvent.CategoryColor = GetColor(objEvent.Color); lstEvent.CategoryFontColor = GetColor(objEvent.FontColor); iconString = CreateIconString(objEvent, Settings.IconListPrio, Settings.IconListRec, Settings.IconListReminder, Settings.IconListEnroll); } lstEvent.EventName = CreateEventName(objEvent, "[event:title]"); lstEvent.EventDesc = objEvent.EventDesc; // RWJS - not sure why replace ' with \' - lstEvent.DecodedDesc = System.Web.HttpUtility.HtmlDecode(objEvent.EventDesc).Replace(Environment.NewLine, "").Trim.Replace("'", "\'") lstEvent.DecodedDesc = Convert.ToString(HttpUtility.HtmlDecode(templatedescr).Replace(Environment.NewLine, "")); lstEvent.EventID = objEvent.EventID; lstEvent.ModuleID = objEvent.ModuleID; var objEventRRULE = default(EventRRULEInfo); objEventRRULE = objCtlEventRecurMaster.DecomposeRRULE(objEvent.RRULE, objEvent.EventTimeBegin); lstEvent.RecurText = objCtlEventRecurMaster.RecurrenceText(objEventRRULE, LocalResourceFile, culture, objEvent.EventTimeBegin); if (objEvent.RRULE != "") { lstEvent.RecurUntil = objEvent.LastRecurrence.ToShortDateString(); } else { lstEvent.RecurUntil = ""; } lstEvent.EventID = objEvent.EventID; lstEvent.ModuleID = objEvent.ModuleID; lstEvent.ImageURL = ""; if (Settings.Eventimage && objEvent.ImageURL != null && objEvent.ImageDisplay) { lstEvent.ImageURL = ImageInfo(objEvent.ImageURL, objEvent.ImageHeight, objEvent.ImageWidth); } // Get detail page url lstEvent.URL = objEventInfoHelper.DetailPageURL(objEvent); if (objEvent.DetailPage && objEvent.DetailNewWin) { lstEvent.Target = "_blank"; } lstEvent.Icons = iconString; lstEvent.DisplayDuration = Convert.ToInt32(Conversion.Int((double)objEvent.Duration / 1440 + 1)); lstEvent.CategoryName = objEvent.CategoryName; lstEvent.LocationName = tcc.TokenReplaceEvent(objEvent, tmpDayLocation); lstEvent.CustomField1 = objEvent.CustomField1; lstEvent.CustomField2 = objEvent.CustomField2; lstEvent.RecurMasterID = objEvent.RecurMasterID; if (Settings.Eventtooltipday) { lstEvent.Tooltip = ToolTipCreate(objEvent, Settings.Templates.txtTooltipTemplateTitle, Settings.Templates.txtTooltipTemplateBody, isEvtEditor); } lstEvent.EditVisibility = false; if (isEvtEditor) { lstEvent.EditVisibility = true; editButtonVisible = true; } colEvents.Add(lstEvent); } } //Determine which fields get displayed if (!IsPrivateNotModerator) { if (Settings.EventsListFields.LastIndexOf("EB", StringComparison.Ordinal) < 0 || editButtonVisible == false) { lstEvents.Columns[0].Visible = false; } else { lstEvents.Columns[0].Visible = true; } if (Settings.EventsListFields.LastIndexOf("BD", StringComparison.Ordinal) < 0) { lstEvents.Columns[1].Visible = false; } if (Settings.EventsListFields.LastIndexOf("ED", StringComparison.Ordinal) < 0) { lstEvents.Columns[2].Visible = false; } if (Settings.EventsListFields.LastIndexOf("EN", StringComparison.Ordinal) < 0) { lstEvents.Columns[3].Visible = false; } if (Settings.EventsListFields.LastIndexOf("IM", StringComparison.Ordinal) < 0) { lstEvents.Columns[4].Visible = false; } if (Settings.EventsListFields.LastIndexOf("DU", StringComparison.Ordinal) < 0) { lstEvents.Columns[5].Visible = false; } if (Settings.EventsListFields.LastIndexOf("CA", StringComparison.Ordinal) < 0) { lstEvents.Columns[6].Visible = false; } if (Settings.EventsListFields.LastIndexOf("LO", StringComparison.Ordinal) < 0) { lstEvents.Columns[7].Visible = false; } if (!Settings.EventsCustomField1 || Settings.EventsListFields.LastIndexOf("C1", StringComparison.Ordinal) < 0) { lstEvents.Columns[8].Visible = false; } if (!Settings.EventsCustomField2 || Settings.EventsListFields.LastIndexOf("C2", StringComparison.Ordinal) < 0) { lstEvents.Columns[9].Visible = false; } if (Settings.EventsListFields.LastIndexOf("DE", StringComparison.Ordinal) < 0) { lstEvents.Columns[10].Visible = false; } if (Settings.EventsListFields.LastIndexOf("RT", StringComparison.Ordinal) < 0) { lstEvents.Columns[11].Visible = false; } if (Settings.EventsListFields.LastIndexOf("RU", StringComparison.Ordinal) < 0) { lstEvents.Columns[12].Visible = false; } } else { // Set Defaults lstEvents.Columns[0].Visible = false; // Edit Buttom lstEvents.Columns[1].Visible = true; // Begin Date lstEvents.Columns[2].Visible = true; // End Date lstEvents.Columns[3].Visible = true; // Title lstEvents.Columns[4].Visible = false; // Image lstEvents.Columns[5].Visible = false; // Duration lstEvents.Columns[6].Visible = false; // Category lstEvents.Columns[7].Visible = false; // Location lstEvents.Columns[8].Visible = false; // Custom Field 1 lstEvents.Columns[9].Visible = false; // Custom Field 2 lstEvents.Columns[10].Visible = false; // Description lstEvents.Columns[11].Visible = false; // Recurrence Pattern lstEvents.Columns[12].Visible = false; // Recur Until } lstEvents.DataSource = colEvents; lstEvents.DataBind(); }
/// <summary> /// Render each day in the event (i.e. Cells) /// </summary> protected void EventCalendar_DayRender(object sender, DayRenderEventArgs e) { var objEvent = default(EventInfo); var cellcontrol = new LiteralControl(); _objEventInfoHelper = new EventInfoHelper(ModuleId, TabId, PortalId, Settings); // Get Events/Sub-Calendar Events var dayEvents = new ArrayList(); var allDayEvents = default(ArrayList); allDayEvents = _objEventInfoHelper.GetDateEvents(_selectedEvents, e.Day.Date); allDayEvents.Sort(new EventInfoHelper.EventDateSort()); foreach (EventInfo tempLoopVar_objEvent in allDayEvents) { objEvent = tempLoopVar_objEvent; //if day not in current (selected) Event month OR full enrollments should be hidden, ignore if ((Settings.ShowEventsAlways || e.Day.Date.Month == SelectedDate.Month) && !HideFullEvent(objEvent)) { dayEvents.Add(objEvent); } } // If No Cell Event Display... if (Settings.Monthcellnoevents) { if (Settings.ShowEventsAlways == false && e.Day.IsOtherMonth) { e.Cell.Text = ""; return; } if (dayEvents.Count > 0) { e.Day.IsSelectable = true; if (e.Day.Date == SelectedDate) { e.Cell.CssClass = "EventSelectedDay"; } else { if (e.Day.IsWeekend) { e.Cell.CssClass = "EventWeekendDayEvents"; } else { e.Cell.CssClass = "EventDayEvents"; } } if (Settings.Eventtooltipmonth) { var themeCss = GetThemeSettings().CssClass; var tmpToolTipTitle = Settings.Templates.txtTooltipTemplateTitleNT; if (tmpToolTipTitle.IndexOf("{0}") + 1 > 0) { tmpToolTipTitle = tmpToolTipTitle.Replace("{0}", "{0:d}"); } var tooltipTitle = Convert.ToString(HttpUtility.HtmlDecode(string.Format(tmpToolTipTitle, e.Day.Date)) .Replace(Environment.NewLine, "")); var cellToolTip = ""; //Holds control generated tooltip foreach (EventInfo tempLoopVar_objEvent in dayEvents) { objEvent = tempLoopVar_objEvent; //Add horizontal row to seperate the eventdescriptions if (!string.IsNullOrEmpty(cellToolTip)) { cellToolTip = cellToolTip + "<hr/>"; } cellToolTip += CreateEventName( objEvent, Convert.ToString(Settings.Templates.txtTooltipTemplateBodyNT .Replace(Constants.vbLf, "").Replace(Constants.vbCr, ""))); } e.Cell.Attributes.Add( "title", "<table class=\"" + themeCss + " Eventtooltiptable\"><tr><td class=\"" + themeCss + " Eventtooltipheader\">" + tooltipTitle + "</td></tr><tr><td class=\"" + themeCss + " Eventtooltipbody\">" + cellToolTip + "</td></tr></table>"); e.Cell.ID = "ctlEvents_Mod_" + ModuleId + "_EventDate_" + e.Day.Date.ToString("yyyyMMMdd"); } var dailyLink = new HyperLink(); dailyLink.Text = string.Format(Settings.Templates.txtMonthDayEventCount, dayEvents.Count); var socialGroupId = GetUrlGroupId(); var socialUserId = GetUrlUserId(); if (dayEvents.Count > 1) { if (Settings.Eventdaynewpage) { if (socialGroupId > 0) { dailyLink.NavigateUrl = _objEventInfoHelper.AddSkinContainerControls( Globals.NavigateURL(TabId, "Day", "Mid=" + ModuleId, "selecteddate=" + Strings.Format(e.Day.Date, "yyyyMMdd"), "groupid=" + socialGroupId), "?"); } else if (socialUserId > 0) { dailyLink.NavigateUrl = _objEventInfoHelper.AddSkinContainerControls( Globals.NavigateURL(TabId, "Day", "Mid=" + ModuleId, "selecteddate=" + Strings.Format(e.Day.Date, "yyyyMMdd"), "userid=" + socialUserId), "?"); } else { dailyLink.NavigateUrl = _objEventInfoHelper.AddSkinContainerControls( Globals.NavigateURL(TabId, "Day", "Mid=" + ModuleId, "selecteddate=" + Strings.Format(e.Day.Date, "yyyyMMdd")), "?"); } } else { if (socialGroupId > 0) { dailyLink.NavigateUrl = Globals.NavigateURL(TabId, "", "ModuleID=" + ModuleId, "mctl=EventDay", "selecteddate=" + Strings.Format(e.Day.Date, "yyyyMMdd"), "groupid=" + socialGroupId); } else if (socialUserId > 0) { dailyLink.NavigateUrl = Globals.NavigateURL(TabId, "", "ModuleID=" + ModuleId, "mctl=EventDay", "selecteddate=" + Strings.Format(e.Day.Date, "yyyyMMdd"), "userid=" + socialUserId); } else { dailyLink.NavigateUrl = Globals.NavigateURL(TabId, "", "ModuleID=" + ModuleId, "mctl=EventDay", "selecteddate=" + Strings.Format(e.Day.Date, "yyyyMMdd")); } } } else { // Get detail page url dailyLink = GetDetailPageUrl((EventInfo)dayEvents[0], dailyLink); } using (var stringWrite = new StringWriter()) { using (var eventoutput = new HtmlTextWriter(stringWrite)) { dailyLink.RenderControl(eventoutput); cellcontrol.Text = "<div class='EventDayScroll'>" + stringWrite + "</div>"; e.Cell.Controls.Add(cellcontrol); } } } else { e.Day.IsSelectable = false; } return; } //Make day unselectable if (!Settings.Monthdayselect) { e.Day.IsSelectable = false; } //loop through records and render if startDate = current day and is not null var celldata = ""; // Holds Control Generated HTML foreach (EventInfo tempLoopVar_objEvent in dayEvents) { objEvent = tempLoopVar_objEvent; var dailyLink = new HyperLink(); var iconString = ""; // See if an Image is to be displayed for the Event if (Settings.Eventimage && Settings.EventImageMonth && objEvent.ImageURL != null && objEvent.ImageDisplay) { dailyLink.Text = ImageInfo(objEvent.ImageURL, objEvent.ImageHeight, objEvent.ImageWidth); } if (Settings.Timeintitle) { dailyLink.Text = dailyLink.Text + objEvent.EventTimeBegin.ToString("t") + " - "; } var eventtext = CreateEventName(objEvent, Settings.Templates.txtMonthEventText); dailyLink.Text = dailyLink.Text + eventtext.Trim(); if (!IsPrivateNotModerator || UserId == objEvent.OwnerID) { dailyLink.ForeColor = GetColor(objEvent.FontColor); iconString = CreateIconString(objEvent, Settings.IconMonthPrio, Settings.IconMonthRec, Settings.IconMonthReminder, Settings.IconMonthEnroll); // Get detail page url dailyLink = GetDetailPageUrl(objEvent, dailyLink); } else { dailyLink.Style.Add("cursor", "text"); dailyLink.Style.Add("text-decoration", "none"); dailyLink.Attributes.Add("onclick", "javascript:return false;"); } // See If Description Tooltip to be added if (Settings.Eventtooltipmonth) { var isEvtEditor = IsEventEditor(objEvent, false); dailyLink.Attributes.Add( "title", ToolTipCreate(objEvent, Settings.Templates.txtTooltipTemplateTitle, Settings.Templates.txtTooltipTemplateBody, isEvtEditor)); } // Capture Control Info & save using (var stringWrite = new StringWriter()) { using (var eventoutput = new HtmlTextWriter(stringWrite)) { dailyLink.ID = "ctlEvents_Mod_" + ModuleId + "_EventID_" + objEvent.EventID + "_EventDate_" + e.Day.Date.ToString("yyyyMMMdd"); dailyLink.RenderControl(eventoutput); if (objEvent.Color != null && (!IsPrivateNotModerator || UserId == objEvent.OwnerID)) { celldata = celldata + "<div style=\"background-color: " + objEvent.Color + ";\">" + iconString + stringWrite + "</div>"; } else { celldata = celldata + "<div>" + iconString + stringWrite + "</div>"; } } } } // Add Literal Control Data to Cell w/DIV tag (in order to support scrolling in cell) cellcontrol.Text = "<div class='EventDayScroll'>" + celldata + "</div>"; e.Cell.Controls.Add(cellcontrol); }