Advertisement
Guest User

SF Events Filter code-behind 2

a guest
Oct 15th, 2016
314
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.95 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using System.Web.UI;
  4. using Telerik.Sitefinity.Events.Model;
  5. using Telerik.Sitefinity.GenericContent.Model;
  6. using Telerik.Sitefinity.Modules.Events;
  7. using Telerik.Sitefinity.Taxonomies;
  8.  
  9. namespace SitefinityWebApp.CustomWidgets
  10. {
  11.     public partial class CustomFilter : System.Web.UI.UserControl
  12.     {
  13.         protected void Page_Load(object sender, EventArgs e)
  14.         {
  15.             if (!IsPostBack)
  16.             {
  17.                 TaxonomyManager taxMan = TaxonomyManager.GetManager();
  18.                 var categories = taxMan.GetTaxonomy(TaxonomyManager.CategoriesTaxonomyId).Taxa;
  19.                 categorySelector.DataValueField = "Id";
  20.                 categorySelector.DataTextField = "Title";
  21.                 categorySelector.DataSource = categories;
  22.                 categorySelector.DataBind();
  23.  
  24.                 EventsManager eventsMan = EventsManager.GetManager();
  25.                 var cities = eventsMan.GetEvents().Select(evt => evt.City.ToString()).ToList().Distinct();
  26.                 citySelector.DataSource = cities;
  27.                 citySelector.DataBind();
  28.  
  29.             }
  30.             Submit.Click += Submit_Click;
  31.             Page.ViewStateMode = ViewStateMode.Enabled;
  32.             Page.EnableViewState = true;
  33.         }
  34.  
  35.         void Submit_Click(object sender, EventArgs e)
  36.         {
  37.             EventsManager eventsMan = EventsManager.GetManager();
  38.  
  39.             int? totalcount = -1;
  40.             var categoryId = categorySelector.Items[categorySelector.SelectedIndex].Value;
  41.             string city = citySelector.Items[citySelector.SelectedIndex].Value;
  42.  
  43.             IQueryable<Event> events = null;
  44.  
  45.             if (!categoryId.IsNullOrWhitespace())
  46.             {
  47.                 events = eventsMan.Provider.GetItemsByTaxon(
  48.                     new Guid(categoryId),
  49.                     false,
  50.                     "Category",
  51.                     typeof(Event),
  52.                     "Status = Master", "",
  53.                     RadListView1.PageSize * RadListView1.CurrentPageIndex,
  54.                     RadListView1.PageSize, ref totalcount).Cast<Event>().AsQueryable();
  55.             }
  56.             else
  57.             {
  58.                 events = eventsMan.GetEvents()
  59.                     .Where(evt => evt.Status == ContentLifecycleStatus.Master)
  60.                     .Skip(RadListView1.PageSize * RadListView1.CurrentPageIndex)
  61.                     .Take(RadListView1.PageSize);
  62.             }
  63.  
  64.             if (!city.IsNullOrWhitespace())
  65.                 events = events.Where(evt => evt.City == city);
  66.  
  67.             if (RadDatePicker1.SelectedDate != null)
  68.                 events = events.Where(evt => evt.EventStart >= RadDatePicker1.SelectedDate);
  69.  
  70.             if(RadDatePicker2.SelectedDate != null)
  71.                 events = events.Where(evt => evt.EventStart <= RadDatePicker2.SelectedDate);
  72.  
  73.             RadListView1.DataSource = events;
  74.             RadListView1.DataBind();
  75.         }
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement