protected override void CreateChildControls() { base.CreateChildControls(); try { SPWeb web = SPContext.Current.Web; spCalendarHolidayView = new SPCalendarView(); spCalendarHolidayView.EnableViewState = true; spCalendarHolidayView.EnableV4Rendering = web.UIVersion >= 4; spCalendarHolidayView.NewItemFormUrl = web.ServerRelativeUrl.TrimEnd('/') + Constants.Pages.HOLIDAY_FORM_PAGE_URL + "?Mode=3"; spCalendarHolidayView.EditItemFormUrl = web.ServerRelativeUrl.TrimEnd('/') + Constants.Pages.HOLIDAY_FORM_PAGE_URL + "?Mode=2"; spCalendarHolidayView.DisplayItemFormUrl = web.ServerRelativeUrl.TrimEnd('/') + Constants.Pages.HOLIDAY_FORM_PAGE_URL + "?Mode=1"; string viewType = this.CalendarPeriod; string selectedDate = SPUtility.GetSelectedDate(Request, web); Tuple <DateTime, DateTime> calendarPeriod = Utils.GetCalendarViewPeriod(SPContext.Current.Web.GetDateOptions(Request), viewType); spCalendarHolidayView.ViewType = viewType; spCalendarHolidayView.SelectedDate = selectedDate; // Bind the datasource to the SPCalendarView var ds = new SPCalendarItemCollection(); short calendarType = web.RegionalSettings.CalendarType; var holidays = new RosterDataService().ListHolidayEvents().OrderBy(item => item.HolidayDate).ToList(); ds.AddRange(holidays.Select(item => new SPCalendarItem() { DisplayFormUrl = web.ServerRelativeUrl.TrimEnd('/') + Constants.Pages.HOLIDAY_FORM_PAGE_URL + "?Mode=1", CalendarType = calendarType, ItemID = item.Id.ToString(), StartDate = item.HolidayDate.Date, EndDate = item.HolidayDate.Date.AddSeconds(86400), hasEndDate = true, Title = item.Holiday.Name, Location = item.Holiday.HolidayType.Name, IsAllDayEvent = true, IsRecurrence = false }).ToList()); // data bind spCalendarHolidayView.DataSource = ds; spCalendarHolidayView.DataBind(); // add Calendar to page this.Controls.Add(spCalendarHolidayView); } catch (Exception ex) { Controls.Add(new Label() { Text = ex.Message, ForeColor = System.Drawing.Color.Red }); Controls.Add(new Label() { Text = " StackTrace: " + ex.StackTrace, ForeColor = System.Drawing.Color.Red }); } }
public ListResult List(ListQuery query) { DisableCaching(); var result = new ListResult { Page = query.Page, Items = new List <ListResultItem>() }; try { var view = new RosterConfigService().GetView(query.ViewId); var field = view.ListMetadata.ListMetadataFields.FirstOrDefault(item => item.Id == query.FieldId); if (field == null) { throw new Exception(string.Format("Field {0} not found", query.FieldId)); } if (field.FieldType() == SPFieldType.Choice) { result.Items.AddRange(field.FieldValues().Where( item => item.Contains(query.Query)).Select(item => new ListResultItem { id = item, text = item }).ToList()); } else { result.Page = query.Page; var queryParams = new QueryParams { SkipRows = 0, TakeRows = 1, Dictinct = true }; queryParams.SelectCriteria.Add(field); queryParams.OrderCriteria.Add(new Tuple <ListMetadataField, SortDirection, string> (field, SortDirection.Ascending, query.DisplayField.ExtractField())); queryParams.WhereCriteria.Add(new Tuple <ListMetadataField, CompareType, ConcateOperator, object, string> (field, CompareType.Contains, ConcateOperator.And, query.Query, query.DisplayField.ExtractField())); var content = new RosterDataService().ListRosterEventProperties(view.ListMetadataId, queryParams); foreach (var value in content.Select(properties => properties.First(item => item.Key == query.DisplayField).Value)) { result.Items.Add(new ListResultItem { id = value.ToSafeString(), text = value.ToSafeString() }); } } } catch (Exception ex) { HandleException(ex); } return(result); }