public IEnumerable <Blog> LoadBlogs(BlogFilter filter = null) { blogsCount = CountBlogs(); if (blogsCount == 0) { return(null); } if (filter == null) { return(dbContext.Blogs); } if (filter.CurrentPage != null) { var query = dbContext.Blogs .OrderByDescending(blog => blog.Id) .Skip(filter.BlogsPerPage * (int)(filter.CurrentPage - 1)) .Take(filter.BlogsPerPage); return(query); } else { var query = dbContext.Blogs .OrderByDescending(blog => blog.Id) .Take(filter.BlogsPerPage); return(query); } }
public IActionResult Index(int?page = null) { var filter = new BlogFilter { BlogsPerPage = blogsPerPage }; if (numberOfPages == 0) { numberOfPages = CountNumberOfPages(); } if (page == null) { var blogs = blogService.LoadBlogs(filter); var viewModel = new BlogsViewModel() { Blogs = blogs.ToList(), CurrentPage = 1, NumberOfPages = numberOfPages }; return(View(viewModel)); } else { filter.CurrentPage = page; var blogs = blogService.LoadBlogs(filter); var viewModel = new BlogsViewModel() { Blogs = blogs.ToList(), CurrentPage = (int)page, NumberOfPages = numberOfPages }; return(View(viewModel)); } }
/// <summary> /// пример - получение кол-ва блогов учитывая фильтр /// </summary> public int GetBlogCount(BlogFilter filter) { var query = new GetCountQuery <Blog>(_db) { Spec = filter }; return(query.GetResult()); }
static void Main(string[] args) { // блоги с фильтром Console.WriteLine(); Console.WriteLine($"Все блоги от авторов с именем Ni* с кол-вом постов > 30 :"); var blogSvc = new BlogService(); var filter = new BlogFilter() { UserName = "******", PostCountGreaterThen = 20 }; var blogs = blogSvc.GetBlogList(filter); PrintBlogs(blogs); Console.WriteLine(); Console.WriteLine($"Блоги в которых были посты за последнюю неделю :"); filter = new BlogFilter() { HasPostLaterThen = DateTime.Now.AddDays(-7) }; var count = blogSvc.GetBlogCount(filter); Console.WriteLine($"Количество : {count}"); // посты с фильтром и сортироовкой var postSvc = new PostService(); Console.WriteLine(); Console.WriteLine($"Все посты в блоге №1, с 2015, сортировка по дате: "); var postFilter = new PostFilter() { BlogId = 1, PostDateLaterThen = new DateTime(2015, 1, 1) }; var posts = postSvc.GetBlogPosts(postFilter); PrintPosts(posts); // получение статистики по блогам кастомным запросом Console.WriteLine(); Console.WriteLine("Статистика по постам #1,2,3:"); var stastFilter = new List <int>() { 1, 2, 3 }; var stats = blogSvc.GetBlogStats(stastFilter) .GetAwaiter().GetResult(); PrintStats(stats); Console.ReadKey(); }
public IActionResult Index(BlogFilter filter = null) { var blogs = _blogRepo.getQueryable().Where(a => a.is_enabled == true); ViewBag.pagerInfo = _paginatedMetaService.GetMetaData(blogs.Count(), filter.page, 5); blogs = blogs.Skip(filter.number_of_rows * (filter.page - 1)).Take(filter.number_of_rows); return(View(blogs.ToList())); }
/// <summary> /// пример - получение списка блогов по фильтру /// </summary> public List <Blog> GetBlogList(BlogFilter filter) { var query = new GetListQuery <Blog>(_db) { Spec = new QuerySpec <Blog>() { Join = new BlogListJoinSpec(), Paging = new QueryPaging(50, 0), Filter = filter, } }; return(query.GetResult()); }
/// <summary> /// Return list of object when call by liquid code in view: "{% for object in objects %}". /// Example: "{% for collection in collections %}". /// </summary> /// <returns></returns> public IEnumerator GetEnumerator() { if (!_loadedModel.ContainsKey("blogs")) { var blogFilter = new BlogFilter { Limit = 10, Page = 1 }; var blogs = blogService.Filter(blogFilter); var blogModels = Mapper.Map <List <BlogModel> >(blogs); _loadedModel.Add("blogs", blogModels); return(blogModels.GetEnumerator()); } return(((List <ProductModel>)_loadedModel["blogs"]).GetEnumerator()); }
public ActionResult ManageSettings(AppSettingsModel appsettings) { var filter = new BlogFilter(_db); if (appsettings.HarmonySettings == null) { appsettings.HarmonySettings = new HarmonySettingsModel(); } filter.Blacklisttags = appsettings.HarmonySettings.BlacklistTags; filter.Whitelistcategories = appsettings.HarmonySettings.WhitelistCategories; filter.Whitelistids = appsettings.HarmonySettings.WhitelistIds; filter.UpdateDatabase(); string result = Newtonsoft.Json.JsonConvert.SerializeObject(new { ApplicationSettings = appsettings }, Newtonsoft.Json.Formatting.Indented); string path = Path.Combine(_env.ContentRootPath, "appsettings.override.json"); System.IO.File.WriteAllText(path, result); CopyValues(_appSettings, appsettings); TriggerSettingsChanged(_appSettings); return(RedirectToAction("Manage", new { context = "Parameter" })); }
public List <Blog> Filter(BlogFilter filter) { try { var products = new List <Blog>(); var request = new RestRequest("/blogs", Method.GET); request.AddParameter("name", filter.Name); request.AddParameter("page", filter.Page); request.AddParameter("limit", filter.Limit); var response = ApiClient.Execute <BlogsResponse>(request); if (response.StatusCode == HttpStatusCode.OK) { products = response.Data.Blogs; return(products); } } catch { } return(null); }
public IActionResult Index(BlogFilter filter = null) { try { var blogs = _blogRepository.getQueryable(); if (!string.IsNullOrWhiteSpace(filter.title)) { blogs = blogs.Where(a => a.title.Contains(filter.title)); } ViewBag.pagerInfo = _paginatedMetaService.GetMetaData(blogs.Count(), filter.page, filter.number_of_rows); blogs = blogs.Skip(filter.number_of_rows * (filter.page - 1)).Take(filter.number_of_rows); var blogsDetails = blogs.ToList(); var blogIndexVM = getViewModelFrom(blogsDetails); return(View(blogIndexVM)); } catch (Exception ex) { AlertHelper.setMessage(this, ex.Message, messageType.error); return(Redirect("/admin")); } }
private BlogListModel GetBlogEntries(string user, string date, bool getIsPublishedOnly, int defaultPageSize) { using (profiler.Step("BlogController.GetBlogEntries")) { var viewData = new BlogListModel(); var blogFilter = new BlogFilter(); var theUser = UserRepository.Load(user); if (theUser == null) { var family = FamilyRepository.Load(user); if (family == null) { return null; } else { blogFilter.AuthorName = user; blogFilter.LoadBlogBy = LoadBlogBy.Family; viewData.Author.FirstName = family.Description; } } else { blogFilter.AuthorName = theUser.UniqueKey; blogFilter.LoadBlogBy = LoadBlogBy.User; viewData.Author.FirstName = theUser.FirstName; } viewData.Author.UrlName = user; if (!string.IsNullOrEmpty(date)) blogFilter.Date = date; if (getIsPublishedOnly) blogFilter.IsPublished = true; ICacheKey cacheKey = new BlogListCacheKey(); viewData.BlogTitles = Cache.Get<IDictionary<string, IDictionary<string, IEnumerable<IBlog>>>>(cacheKey.GenerateKey(string.Format("SidebarList:{0}", blogFilter.AuthorName)), () => GenerateBlogTitles(BlogRepository .LoadList(blogFilter) .BlogEntries .OrderByDescending(b => b.DatePublished))); int pageSize = 10; if (Int32.TryParse(QueryValue("pageSize"), out pageSize)) blogFilter.PageSize = pageSize; else blogFilter.PageSize = defaultPageSize; int pageIndex = 1; if (Int32.TryParse(QueryValue("page"), out pageIndex)) blogFilter.PageIndex = pageIndex; else blogFilter.PageIndex = 1; var model = BlogRepository.LoadList(blogFilter); viewData.BlogEntries = model.BlogEntries.OrderByDescending(b => b.DatePublished); viewData.PageCount = model.PageCount; viewData.PageIndex = model.PageIndex; return viewData; } }
public IBlogList LoadList(BlogFilter filter) { using (MiniProfiler.Current.Step("BlogRepository.LoadList")) { EnsureInjectables(); BlogList model = new BlogList(); using (var dc = DataContextFactory.GetDataContext()) { IEnumerable<IBlog> blogs = dc.Repository<Blog>() .AsEnumerable() .Cast<IBlog>(); if (filter.LoadBlogBy == LoadBlogBy.User) { blogs = LoadByUser(blogs, filter.AuthorName); } else if (filter.LoadBlogBy == LoadBlogBy.Family) { blogs = LoadByFamily(blogs, filter.AuthorName, dc); } if (!String.IsNullOrEmpty(filter.Date)) { blogs = LoadByDate(blogs, filter.Date); } if (!String.IsNullOrEmpty(filter.Tags)) { blogs = LoadByTags(blogs, filter.Tags); } if (filter.IsPublished.HasValue) { blogs = blogs.Where(b => b.IsPublished == filter.IsPublished.Value); blogs = blogs.Where(b => b.DatePublished.Value <= DateTime.Now); } blogs = blogs.OrderByDescending(b => b.DatePublished); using (MiniProfiler.Current.Step("BlogRepository.LoadList.Paging")) { if (filter.PageSize.HasValue) { int count = Cache.Get<int>(new BlogListCountCacheKey().GenerateKey(filter.AuthorName), () => blogs.Count()); decimal pagesDecimal = (decimal)count / (decimal)filter.PageSize.Value; if (pagesDecimal % 1 > 0) pagesDecimal += 0.5M; int pages = Convert.ToInt32(Math.Round(pagesDecimal, 0, MidpointRounding.AwayFromZero)); int pageIndex = filter.PageIndex.HasValue ? filter.PageIndex.Value - 1 : 0; if (pageIndex > pages) pageIndex = 0; var skip = pageIndex * filter.PageSize.Value; model.PageIndex = pageIndex + 1; model.PageCount = pages; blogs = blogs.Skip(skip).Take(filter.PageSize.Value); } } model.BlogEntries = blogs.ToList(); return model; } } }