/// <summary> /// List of post. /// </summary> /// <returns></returns> // GET: /<controller>/ public async Task <IActionResult> Index(int skip, int take) { // Set page expiration... UpdateExpirationToNextDay(); // Page metas... List <int> catList = _SetViewBagAndGetCats(); bool excludeEvent = (AppContext?.Page?.GetPageFiltering() == PageFiltering.ExcludeEvent); // Post provider... PostProvider provider = new PostProvider(AppContext); ViewBag.pageMax = await provider?.Count(new Dictionary <string, object> { { QueryFilter.Categorie, catList }, { QueryFilter.ExcludePostsEvent, excludeEvent }, }); ViewBag.Posts = await provider?.Get(new Dictionary <string, object> { { QueryFilter.Categorie, catList }, { QueryFilter.ExcludePostsEvent, excludeEvent }, }, skip, take); ViewBag.pageSkip = skip; ViewBag.pageTake = 20; //ViewData["Message"] = $"Posts: PageId={this.RouteData.Values[CRoute.PageIdTagName]}"; return(View()); }
/// <summary> /// Calendar. /// </summary> /// <returns></returns> // GET: /<controller>/ public async Task <IActionResult> Calendar(int skip, int take) { // Set page expiration... UpdateExpirationToNextDay(); DateTime dtFilter = DateTime.Now; //#if DEBUG // dtFilter = new DateTime(2016, 01, 01); //#endif // Post metas... List <int> catList = _SetViewBagAndGetCats(); // Post provider... PostProvider provider = new PostProvider(AppContext); ViewBag.pageMax = await provider?.Count(new Dictionary <string, object> { { QueryFilter.Categorie, catList }, { QueryFilter.EndDate, dtFilter } }); ViewBag.Posts = await provider?.Get(new Dictionary <string, object> { { QueryFilter.Categorie, catList }, { QueryFilter.EndDate, dtFilter } }, skip, take); ViewBag.pageSkip = skip; ViewBag.pageTake = 20; ViewBag.calendar = true; //ViewData["Message"] = $"Post: PageId={this.RouteData.Values[CRoute.PageIdTagName]}, PostId={this.RouteData.Values[CRoute.PostIdTagName]}"; return(View("Index")); }
public async Task <JsonListPost> Get([FromBody] JsonListSettings settings) { try { // Initialisation... Dictionary <string, string> defaultFilters = settings?.DefaultFilters; if (settings == null || settings.Filters == null) { settings = new JsonListSettings() { Count = 0, Skip = 0, Take = 20, Filters = new Dictionary <string, string>() { { QueryFilter.MineToo, "true" } } }; if ((AppContext.User?.HasRole(ClaimValueRole.Administrator) ?? false) == true || (AppContext.User?.HasRole(ClaimValueRole.Publicator) ?? false) == true) { settings.Filters.Add(QueryFilter.State, "-1"); } else { settings.Filters.Add(QueryFilter.State, "1"); } if (settings == null || settings.Filters == null) { _Log.LogCritical("Not enough memory to allocate a new JsonListSettings!"); return(null); } } if (defaultFilters != null) { foreach (KeyValuePair <string, string> kp in defaultFilters) { settings.Filters.Add(kp.Key, kp.Value); } } // By default: Always add childs items of the categories... if (settings.Filters.ContainsKey(QueryFilter.ShowChildsCategoriesPosts) == false) { settings.Filters.Add(QueryFilter.ShowChildsCategoriesPosts, "true"); } // Get posts based on filter... PostProvider provider = new PostProvider(AppContext); Dictionary <string, object> filters = provider?.ConvertFilter(settings.Filters); IEnumerable <Post> posts = await provider?.Get(filters, settings.Skip, settings.Take); JsonListPost list = new JsonListPost(settings, posts?.Select(p => new JsonPost(AppContext, p))); if (settings.Skip == 0 && settings.Count == 0 && list != null) { // Get posts total count... list.Settings.Count = await provider?.Count(filters); } // Clean settings... if (defaultFilters != null) { foreach (KeyValuePair <string, string> kp in defaultFilters) { settings.Filters.Remove(kp.Key); } } return(list); } catch (Exception e) { AppContext?.Log?.LogError("Exception getting posts - HttpPost:/api/post/list: {0}", e.Message); return(null); } }