/// <summary> /// any changes made here need to be mirrored in getcalendarschedule /// </summary> /// <param name="id"></param> /// <param name="ownerEntity"></param> /// <param name="startDate"></param> /// <param name="endDate"></param> /// <returns></returns> public static RDN.Portable.Classes.Controls.Calendar.Calendar GetCalendarScheduleForView(Guid id, CalendarOwnerEntityEnum ownerEntity, DateTime startDate, DateTime endDate, Guid memberId) { RDN.Portable.Classes.Controls.Calendar.Calendar cal = new RDN.Portable.Classes.Controls.Calendar.Calendar(); try { var dc = new ManagementContext(); var calDb = (from xx in dc.Calendar.Include("CalendarEventsReocurring").Include("CalendarEvents").Include("CalendarEvents.ReocurringEvent").Include("CalendarEvents.PointsForEvent") where xx.CalendarId == id select new { xx.IsCalendarInUTC, xx.TimeZone, xx.TimeZoneSelection, xx.DisableStartSkatingDays, xx.DisableBirthdaysFromShowing, Events = xx.CalendarEvents.Where(x => x.StartDate >= startDate && x.EndDate <= endDate && x.IsRemovedFromCalendar == false), EventsReocurring = xx.CalendarEventsReocurring.Where(x => (x.EndReocurring >= startDate || x.EndReocurring == null) && x.StartReocurring <= endDate && x.IsRemovedFromCalendar == false), }).FirstOrDefault(); string baseUrl = VirtualPathUtility.ToAbsolute("~/calendar/event/" + ownerEntity.ToString() + "/" + id.ToString().Replace("-", "") + "/"); cal.DisableSkatingStartDates = calDb.DisableStartSkatingDays; cal.DisableBirthdays = calDb.DisableBirthdaysFromShowing; //adds all the events from the database that were in the date range selected. foreach (var ev in calDb.Events) { try { CalendarEventJson calEvent = new CalendarEventJson(); if (ev.Color != null) { var c = Color.FromArgb(ev.Color.ColorIdCSharp); calEvent.backColor = ColorTranslator.ToHtml(c); } calEvent.title = ev.Name; //removes length less than 14 chars //because the title is too long for the calendar display. if (ev.Name.Length > 14) calEvent.title = calEvent.title.Remove(14); calEvent.id = ev.CalendarItemId; if (ev.ReocurringEvent != null) calEvent.ReocurringId = ev.ReocurringEvent.CalendarItemId; calEvent.url = baseUrl + ev.CalendarItemId.ToString().Replace("-", ""); if (!ev.IsInUTCTime) { calEvent.start = ev.StartDate.ToString("o"); calEvent.end = ev.EndDate.ToString("o"); calEvent.StartDate = ev.StartDate; calEvent.EndDate = ev.EndDate; } else { calEvent.StartDate = ev.StartDate + new TimeSpan(calDb.TimeZone, 0, 0); calEvent.EndDate = ev.EndDate + new TimeSpan(calDb.TimeZone, 0, 0); if (calEvent.StartDate != null) calEvent.start = calEvent.StartDate.ToString("o"); if (calEvent.EndDate != null) calEvent.end = calEvent.EndDate.ToString("o"); } cal.EventsJson.Add(calEvent); } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType(), additionalInformation: calDb.TimeZone + ":" + ev.StartDate + ":" + ev.EndDate); } } int amount = dc.SaveChanges(); } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return cal; }
public static CalendarEventJson DisplayStartDateJson(MemberDisplay member) { CalendarEventJson calEvent = new CalendarEventJson(); try { calEvent.title = "SS:" + member.DerbyName; //removes length less than 14 chars //because the title is too long for the calendar display. if (calEvent.title.Length > 14) calEvent.title = calEvent.title.Remove(14); calEvent.id = member.MemberId; calEvent.url = VirtualPathUtility.ToAbsolute("~/calendar/started-skating/" + member.MemberId.ToString().Replace("-", "") + "/" + RDN.Utilities.Strings.StringExt.ToSearchEngineFriendly(member.DerbyName)); DateTime dt = new DateTime(DateTime.UtcNow.Year, member.StartedSkating.Value.Month, member.StartedSkating.Value.Day); calEvent.StartDate = dt; calEvent.EndDate = dt; calEvent.start = dt.ToString("o"); calEvent.end = dt.ToString("o"); } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return calEvent; }