コード例 #1
0
        /// <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"));
        }
コード例 #2
0
        /// <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());
        }
コード例 #3
0
        public async Task <JsonPost> Get(int id)
        {
            try
            {
                JsonPost jsnPost = null;
                // Get and return the post...
                if (id == 0)
                {
                    // Call for adding a new post...
                    jsnPost             = new JsonPost(AppContext, null, true);
                    jsnPost.Title       = "Votre titre ici...";
                    jsnPost.TextContain = "Votre texte la...";
                }
                else
                {
                    PostProvider provider = new PostProvider(AppContext);
                    Post         post     = await provider?.Get(id);

                    jsnPost = new JsonPost(AppContext, post, true);
                }
                return(jsnPost);
            }
            catch (Exception e)
            {
                AppContext?.Log?.LogError("Exception getting post - HttpGet:/api/post/{0}: {1}", id, e.Message);
                return(null);
            }
        }
コード例 #4
0
        private async Task _SetViewag()
        {
            IEnumerable <Models.Post> latest = null;
            DateTime dtFilter = DateTime.Now;

//#if DEBUG
//            dtFilter = new DateTime(2016, 01, 01);
//#endif
            // Page metas...
            if (AppContext.Region == null)
            {
                ViewBag.MetaTitle       = "VIE ET PARTAGE";
                ViewBag.MetaDescription = AppContext.Module.DefaultDescription;
                ViewBag.MetaKeywords    = $"{AppContext.Module.DefaultPageKeywords}, {AppContext?.Site?.GetRegionsAsString().ToLower()}";
                ViewBag.MetaRobotsTerms = "index, follow";
                //ViewBag.HideMenu = true;
                ViewBag.HideNavPath  = true;
                ViewBag.ForAllRegion = true;
            }
            else
            {
                ViewBag.MetaTitle       = $"{AppContext?.Region?.StringValue} - VIE ET PARTAGE";
                ViewBag.MetaDescription = $"Vie et partage {AppContext?.Region?.StringValue} - {AppContext.Module.DefaultDescription}";
                ViewBag.MetaKeywords    = $"{AppContext?.Region?.StringValue?.ToLower()}, {AppContext.Module.DefaultPageKeywords}";
                ViewBag.MetaRobotsTerms = "index, follow";
                ViewBag.HideNavPath     = true;
                ViewBag.ForAllRegion    = false;
            }
            // Post provider...
            PostProvider provider = new PostProvider(AppContext);

            // Post data...
            ViewBag.Retaites = await provider?.Get(new Dictionary <string, object>
            {
                { QueryFilter.Categorie, new List <int> {
                      14                                   /*Retraite*/
                  } },
                { QueryFilter.EndDate, dtFilter }
            }, 0, 6);

            ViewBag.Events = await provider?.Get(new Dictionary <string, object>
            {
                { QueryFilter.Categorie, new List <int> {
                      13                                   /*Calendrier*/
                  } },
                { QueryFilter.EndDate, dtFilter }
            }, 0, 6);

            ViewBag.Announcements = latest = await provider?.Get(new Dictionary <string, object>
            {
                { QueryFilter.Categorie, new List <int> {
                      15                                   /*Annonces*/
                  } },
            }, 0, 20);

            //int nbLatest = ((latest?.Count() ?? 0) == 0) ? 11 : 6;
            ViewBag.Latests = await provider?.Get(new Dictionary <string, object>
            {
                { QueryFilter.ExcludePostsEvent, true },
                { $"{QueryFilter.Categorie}!", new List <int> {
                      13 /*Retraite*/, 14 /*Calendrier*/, 15                                       /*Annonces*/
                  } },
            }, 0, 6 /*nbLatest*/);
        }
コード例 #5
0
        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);
            }
        }