Example #1
0
        public GridControlLatestNewsEventsBlockValue(GridControl control, JToken obj) : base(control, obj as JObject)
        {
            GridControlLatestNewsEventsBlockItem = JsonConvert.DeserializeObject <GridControlLatestNewsEventsBlockItem>(obj.ToString());
            var homePage           = new UmbracoHelper(UmbracoContext.Current).TypedContent(LatestNewsEventsBlockConfig.HomePageId);
            var closestFutureEvent = homePage
                                     .Descendants(LatestNewsEventsBlockConfig.EventsConfig.PageAlias)
                                     .ToArray()
                                     .Where(eventPage => eventPage.GetPropertyValue <DateTime>(LatestNewsEventsBlockConfig.EventsConfig.StartDate) >= DateTime.Today ||
                                            eventPage.GetPropertyValue <DateTime>(LatestNewsEventsBlockConfig.EventsConfig.EndDate) >= DateTime.Today)
                                     .OrderBy(eventPage => eventPage.GetPropertyValue <DateTime>(LatestNewsEventsBlockConfig.EventsConfig.StartDate))
                                     .FirstOrDefault();
            var newsToTakeCount = closestFutureEvent != null ? 2 : 3;
            var newsAndEvents   = homePage.Descendants(LatestNewsEventsBlockConfig.NewsConfig.PageAlias)
                                  .ToArray()
                                  .OrderByDescending(newsPage => newsPage.GetPropertyValue <DateTime>(LatestNewsEventsBlockConfig.NewsConfig.Date))
                                  .Take(newsToTakeCount)
                                  .ToList();

            if (closestFutureEvent != null)
            {
                newsAndEvents.Add(closestFutureEvent);
            }

            GridControlLatestNewsEventsBlockItem.Tiles = newsAndEvents.Select(MapToTile);
        }
Example #2
0
        public ActionResult NewsList(GridControlNewsListDataSourceItem[] dataSources, int page = 1)
        {
            var allNews        = new List <NewsListItem>();
            var totalNewsCount = 0;

            if (dataSources != null && dataSources.Length > 0)
            {
                foreach (var dataSourceItem in dataSources)
                {
                    var dataSourceContent = new UmbracoHelper(UmbracoContext.Current).TypedContent(dataSourceItem.Id);

                    allNews.AddRange(dataSourceContent.Descendants(NewsListBlockConfig.NewsPageAlias)
                                     .Where(newsPage => newsPage.IsVisible())
                                     .Select(newsPage => new NewsListItem
                    {
                        Url         = newsPage.Url,
                        Title       = newsPage.GetPropertyValue <string>(NewsListBlockConfig.Title),
                        Description = newsPage.GetPropertyValue <string>(NewsListBlockConfig.Description),
                        Date        = newsPage.GetPropertyValue <DateTime>(NewsListBlockConfig.Date),
                        Image       = newsPage.GetPropertyValue <IPublishedContent>(NewsListBlockConfig.Image)?.Url
                    }));
                }

                totalNewsCount = allNews.Count;
            }

            return(View("/App_Plugins/NewsListBlock/Views/NewsList.cshtml", new NewsListBlockModel
            {
                News = allNews.OrderByDescending(x => x.Date).Skip((page - 1) * NewsListBlockConfig.PageSize).Take(NewsListBlockConfig.PageSize),
                PageNavigationModel = new PageNavigationModel(page, (int)Math.Ceiling((decimal)totalNewsCount / NewsListBlockConfig.PageSize), totalNewsCount, NewsListBlockConfig.PageSize)
            }));
        }
        public ActionResult EventsList(GridControlEventsListDataSourceItem[] dataSources, int page = 1)
        {
            var allEvents        = new List <EventsListItem>();
            var totalEventsCount = 0;

            if (dataSources != null && dataSources.Any())
            {
                foreach (var dataSourceItem in dataSources)
                {
                    var dataSourceContent = new UmbracoHelper(UmbracoContext.Current).TypedContent(dataSourceItem.Id);

                    allEvents.AddRange(dataSourceContent.Descendants(EventsListBlockConfig.EventPageAlias)
                                       .Where(x => x.IsVisible())
                                       .Select(x => new EventsListItem
                    {
                        Title       = x.GetPropertyValue <string>(EventsListBlockConfig.Title),
                        Description = x.GetPropertyValue <string>(EventsListBlockConfig.Summary),
                        Url         = x.Url,
                        Date        = x.GetPropertyValue <DateTime>(EventsListBlockConfig.Date),
                        Image       = x.GetPropertyValue <IPublishedContent>(EventsListBlockConfig.Image)?.Url,
                        Location    = x.GetPropertyValue <string>(EventsListBlockConfig.Location)
                    }));
                }

                totalEventsCount = allEvents.Count;
            }

            var events = allEvents.OrderByDescending(x => x.Date)
                         .Skip((page - 1) * EventsListBlockConfig.PageSize)
                         .Take(EventsListBlockConfig.PageSize);

            return(View("/App_Plugins/EventsListBlock/Views/EventsList.cshtml", new EventsListBlockModel
            {
                Events = events,
                PageNavigationModel = new PageNavigationModel(page, totalEventsCount, EventsListBlockConfig.PageSize)
            }));
        }