// --------------- async Task <LabelIndexViewModel <Label> > GetIndexViewModelAsync(LabelIndexOptions options, PagerOptions pager) { // Get feature options.FeatureId = await GetFeatureIdAsync(); if (options.Sort == LabelSortBy.Auto) { options.Sort = LabelSortBy.Entities; options.Order = OrderBy.Desc; } // Set pager call back Url pager.Url = _contextFacade.GetRouteUrl(pager.Route(RouteData)); return(new LabelIndexViewModel <Label>() { Options = options, Pager = pager }); }
// ------------ async Task <LabelIndexViewModel <Label> > GetIndexViewModelAsync(LabelIndexOptions options, PagerOptions pager) { // Get articles feature options.FeatureId = await GetFeatureIdAsync(); if (options.Sort == LabelSortBy.Auto) { options.Sort = LabelSortBy.Modified; options.Order = OrderBy.Desc; } // Indicate administrator view options.EnableEdit = true; // Set pager call back Url pager.Url = _contextFacade.GetRouteUrl(pager.Route(RouteData)); return(new LabelIndexViewModel <Label>() { Options = options, Pager = pager }); }
public async Task <IActionResult> Index(LabelIndexOptions opts, PagerOptions pager) { if (opts == null) { opts = new LabelIndexOptions(); } if (pager == null) { pager = new PagerOptions(); } // Get default options var defaultViewOptions = new LabelIndexOptions(); var defaultPagerOptions = new PagerOptions(); // Add non default route data for pagination purposes if (opts.Search != defaultViewOptions.Search && !this.RouteData.Values.ContainsKey("opts.search")) { this.RouteData.Values.Add("opts.search", opts.Search); } if (opts.Sort != defaultViewOptions.Sort && !this.RouteData.Values.ContainsKey("opts.sort")) { this.RouteData.Values.Add("opts.sort", opts.Sort); } if (opts.Order != defaultViewOptions.Order && !this.RouteData.Values.ContainsKey("opts.order")) { this.RouteData.Values.Add("opts.order", opts.Order); } if (pager.Page != defaultPagerOptions.Page && !this.RouteData.Values.ContainsKey("pager.page")) { this.RouteData.Values.Add("pager.page", pager.Page); } if (pager.Size != defaultPagerOptions.Size && !this.RouteData.Values.ContainsKey("pager.size")) { this.RouteData.Values.Add("pager.size", pager.Size); } // Build view model var viewModel = await GetIndexViewModelAsync(opts, pager); // Add view options to context HttpContext.Items[typeof(LabelIndexViewModel <Label>)] = viewModel; // If we have a pager.page querystring value return paged results if (int.TryParse(HttpContext.Request.Query["pager.page"], out var page)) { if (page > 0) { return(View("GetLabels", viewModel)); } } // Return Url for authentication purposes ViewData["ReturnUrl"] = _contextFacade.GetRouteUrl(new RouteValueDictionary() { ["area"] = "Plato.Issues.Labels", ["controller"] = "Home", ["action"] = "Index" }); // Breadcrumb _breadCrumbManager.Configure(builder => { builder.Add(S["Home"], home => home .Action("Index", "Home", "Plato.Core") .LocalNav() ).Add(S["Issues"], discuss => discuss .Action("Index", "Home", "Plato.Issues") .LocalNav() ).Add(S["Labels"]); }); // Return view return(View((LayoutViewModel)await _labelViewProvider.ProvideIndexAsync(new Label(), this))); }
// ------------ // Index // ------------ public async Task <IActionResult> Index(LabelIndexOptions opts, PagerOptions pager) { //if (!await _authorizationService.AuthorizeAsync(User, PermissionsProvider.ManageRoles)) //{ // return Unauthorized(); //} if (opts == null) { opts = new LabelIndexOptions(); } if (pager == null) { pager = new PagerOptions(); } // Get default options var defaultViewOptions = new LabelIndexOptions(); var defaultPagerOptions = new PagerOptions(); // Add non default route data for pagination purposes if (opts.Search != defaultViewOptions.Search) { this.RouteData.Values.Add("opts.search", opts.Search); } if (opts.Sort != defaultViewOptions.Sort) { this.RouteData.Values.Add("opts.sort", opts.Sort); } if (opts.Order != defaultViewOptions.Order) { this.RouteData.Values.Add("opts.order", opts.Order); } if (pager.Page != defaultPagerOptions.Page) { this.RouteData.Values.Add("pager.page", pager.Page); } if (pager.Size != defaultPagerOptions.Size) { this.RouteData.Values.Add("pager.size", pager.Size); } // Build view model var viewModel = await GetIndexViewModelAsync(opts, pager); // Add view model to context HttpContext.Items[typeof(LabelIndexViewModel <Label>)] = viewModel; // If we have a pager.page querystring value return paged results if (int.TryParse(HttpContext.Request.Query["pager.page"], out var page)) { if (page > 0) { return(View("GetLabels", viewModel)); } } // Breadcrumb _breadCrumbManager.Configure(builder => { builder .Add(S["Home"], home => home .Action("Index", "Admin", "Plato.Admin") .LocalNav()) .Add(S["Articles"], articles => articles .Action("Index", "Admin", "Plato.Articles") .LocalNav()) .Add(S["Labels"]); }); // Return view return(View((LayoutViewModel)await _viewProvider.ProvideIndexAsync(new Label(), this))); }
public async Task <IActionResult> Get(LabelIndexOptions opts, PagerOptions pager) { if (opts == null) { opts = new LabelIndexOptions();; } if (pager == null) { pager = new PagerOptions(); } if (opts.Sort == LabelSortBy.Auto) { opts.Sort = LabelSortBy.Entities; opts.Order = OrderBy.Desc; } var labels = await _labelService.GetResultsAsync(opts, pager); PagedResults <LabelApiResult> results = null; if (labels != null) { results = new PagedResults <LabelApiResult> { Total = labels.Total }; var baseUrl = await _contextFacade.GetBaseUrlAsync(); foreach (var label in labels.Data) { var url = baseUrl + _contextFacade.GetRouteUrl(new RouteValueDictionary() { ["opts.labelId"] = label.Id, ["opts.alias"] = label.Alias }); results.Data.Add(new LabelApiResult() { Id = label.Id, Name = label.Name, Description = label.Description, ForeColor = label.ForeColor, BackColor = label.BackColor, Alias = label.Alias, TotalEntities = new FriendlyNumber() { Text = label.TotalEntities.ToPrettyInt(), Value = label.TotalEntities }, Rank = 0 }); } } LabelApiResults output = null; if (results != null) { output = new LabelApiResults() { Page = pager.Page, Size = pager.Size, Total = results.Total, TotalPages = results.Total.ToSafeCeilingDivision(pager.Size), Data = results.Data }; } return(output != null ? base.Result(output) : base.NoResults()); }