public static PagedResult <T, EmbeddedT> ToPagedResult <T, EmbeddedT>(this PageSortOptions pageSortOptions, IEnumerable <T> data, int total) where EmbeddedT : Embedded <T>, new() where T : class { var descriptor = (ControllerActionDescriptor)_actionContextAccessor.ActionContext.ActionDescriptor; var actionName = descriptor.ActionName; var controllerName = descriptor.ControllerName; var routeValues = _actionContextAccessor.ActionContext.RouteData.Values; var result = new PagedResult <T, EmbeddedT>(pageSortOptions.Page, pageSortOptions.PageSize, total, data) { Links = { First = GenerateLink(pageSortOptions, 1, actionName, controllerName, routeValues), Self = GenerateLink(pageSortOptions, pageSortOptions.Page, actionName, controllerName, routeValues) } }; result.Links.Last = GenerateLink(pageSortOptions, result.Page.TotalPages, actionName, controllerName, routeValues); if (pageSortOptions.Page - 1 > 0) { result.Links.Previous = GenerateLink(pageSortOptions, pageSortOptions.Page - 1, actionName, controllerName, routeValues); } if (pageSortOptions.Page + 1 <= result.Page.TotalPages) { result.Links.Next = GenerateLink(pageSortOptions, pageSortOptions.Page + 1, actionName, controllerName, routeValues); } return(result); }
public static PagedResult <T> ToPagedResult <T>(this PageSortOptions pageSortOptions, IEnumerable <T> data, int total, string actionName, string controllerName, object routeValues = null) where T : class { if (string.IsNullOrWhiteSpace(actionName)) { throw new ArgumentNullException(nameof(actionName)); } if (string.IsNullOrWhiteSpace(controllerName)) { throw new ArgumentNullException(nameof(controllerName)); } var result = new PagedResult <T>(pageSortOptions.Page, pageSortOptions.PageSize, total, data) { Links = { First = GenerateLink(pageSortOptions, 1, actionName, controllerName, routeValues), Self = GenerateLink(pageSortOptions, pageSortOptions.Page, actionName, controllerName, routeValues) } }; result.Links.Last = GenerateLink(pageSortOptions, result.Page.TotalPages, actionName, controllerName, routeValues); if (pageSortOptions.Page - 1 > 0) { result.Links.Previous = GenerateLink(pageSortOptions, pageSortOptions.Page - 1, actionName, controllerName, routeValues); } if (pageSortOptions.Page + 1 <= result.Page.TotalPages) { result.Links.Next = GenerateLink(pageSortOptions, pageSortOptions.Page + 1, actionName, controllerName, routeValues); } return(result); }
GetHistory(long clientId, ClientAccountActionModel accountFilters, PageSortOptions pageSortOptions) { var accountHistoryList = ClientAccountRepo.GetClientAccountHistoryProjected(clientId) .AsFiltered(accountFilters) .AsPagination(pageSortOptions); var accountHistoryViewFilterContainer = new AccountHistoryFilterContainer() { VersionDate = accountFilters.VersionDate, ManagerName = accountFilters.ManagerName, RealClientName = accountFilters.RealClientName, OperationalClientName = accountFilters.OperationalClientName, MoneyVolume = accountFilters.MoneyVolume, QuickCost = accountFilters.QuickCost, TargetAccountOrganizationName = accountFilters.TargetAccountOrganizationName }; var gridSortOptions = new GridSortOptions { Column = pageSortOptions.Column, Direction = pageSortOptions.Direction }; var accountHistoryListContainer = new ListContainerModel <ClientAccountActionModel, AccountHistoryFilterContainer>() { PagedList = accountHistoryList, FilterContainer = accountHistoryViewFilterContainer, GridSortOptions = gridSortOptions }; return(accountHistoryListContainer); }
internal static Link GenerateLink(PageSortOptions pageSortOptions, int page, string routeName, object routeValues = null) { var values = new RouteValueDictionary(routeValues) { ["Page"] = page, ["PageSize"] = pageSortOptions.PageSize, ["Sort"] = pageSortOptions.Sort }; var url = GetLinkProvider().AbsoluteRoute(routeName, values); return(new Link(url.ToLowerInvariant())); }
public PartialViewResult DeleteUser(string options, int page, Guid id) { ProfileRepo.DeleteUser(id); OptionsHolder <UserProfileModel> holder = OptionsHolder <UserProfileModel> .GetHolder(options.Replace("\"\"", "null")); PageSortOptions pso = new PageSortOptions() { Column = holder.Sort.Column, Direction = holder.Sort.Direction, Page = page }; return(PartialView("SearchResultsWithPaging", GetUsersList(holder.Filter, pso))); }
public PartialViewResult DeleteClient(string options, int page, long id) { ClientRepo.DeleteClient(id); OptionsHolder <ClientModel> holder = OptionsHolder <ClientModel> .GetHolder(options); PageSortOptions pso = new PageSortOptions() { Column = holder.Sort.Column, Direction = holder.Sort.Direction, Page = page }; return(PartialView("SearchResultsWithPaging", GetClientsList(holder.Filter, pso))); }
internal static Link GenerateLink(this PageSortOptions pageSortOptions, int?page, string routeName, object routeValues = null) { var values = new RouteValueDictionary(routeValues); var query = _actionContextAccessor.ActionContext.HttpContext.Request.Query; foreach (var item in query) { values[item.Key.ToLowerInvariant()] = item.Value; } values["page"] = page; values["pageSize"] = pageSortOptions.PageSize; values["sort"] = pageSortOptions.Sort; var url = GetLinkProvider().AbsoluteRoute(routeName, values); return(new Link(url.ToLowerInvariant())); }
private ListContainerModel <AddressModel, AddressFilterContainer> GetAddressList(AddressModel addressFilters, PageSortOptions pageSortOptions) { var addressPagedList = AddressRepo.GetAdressesProjected().AsFiltered(addressFilters).AsPagination(pageSortOptions); var addressViewFilterContainer = new AddressFilterContainer() { LastName = addressFilters.LastName, MobilePhone = addressFilters.MobilePhone, City = addressFilters.City, Sex = addressFilters.Sex }; var gridSortOptions = new GridSortOptions { Column = pageSortOptions.Column, Direction = pageSortOptions.Direction }; var clientListContainer = new ListContainerModel <AddressModel, AddressFilterContainer>() { PagedList = addressPagedList, FilterContainer = addressViewFilterContainer, GridSortOptions = gridSortOptions }; return(clientListContainer); }
public static PagedResult <T> ToPagedResult <T>(this PageSortOptions pageSortOptions, IEnumerable <T> data, int total, string routeName, object routeValues = null) where T : class { return(((PageOptions)pageSortOptions).ToPagedResult <T>(data, total, routeName, routeValues)); }
public static PagedResult <T, EmbeddedT> ToPagedResult <T, EmbeddedT>(this PageSortOptions pageSortOptions, IEnumerable <T> data, int total) where EmbeddedT : Embedded <T>, new() where T : class { return(((PageOptions)pageSortOptions).ToPagedResult <T, EmbeddedT>(data, total)); }
public ActionResult Index(ClientModel clientFilters, PageSortOptions pageSortOptions) { return(View(GetClientsList(clientFilters, pageSortOptions))); }
private ListContainerModel <ClientModel, ClientsFilterContainer> GetClientsList(ClientModel clientFilters, PageSortOptions pageSortOptions) { string loginToSearch = (clientFilters.Login ?? new List <string>()).FirstOrDefault(); var clientPagedList = ClientRepo.GetClientsProjected(loginToSearch).AsFiltered(clientFilters) .AsPagination(pageSortOptions); var clientViewFilterContainer = new ClientsFilterContainer() { Login = loginToSearch, IsDealler = clientFilters.IsDealler, OrganizationName = clientFilters.OrganizationName, Status = clientFilters.Status, }; var gridSortOptions = new GridSortOptions { Column = pageSortOptions.Column, Direction = pageSortOptions.Direction }; var clientListContainer = new ListContainerModel <ClientModel, ClientsFilterContainer>() { PagedList = clientPagedList, FilterContainer = clientViewFilterContainer, GridSortOptions = gridSortOptions }; return(clientListContainer); }
private ListContainerModel <UserProfileModel, UserProfilesFilterContainer> GetUsersList(UserProfileModel profileFilters, PageSortOptions pageSortOptions, long?clientId = null, int?childLevel = null) { string roleToSearch = (profileFilters.Roles ?? new List <string>()).FirstOrDefault() ?? string.Empty; var clientPagedList = ProfileRepo.GetUsersProjected(clientId, roleToSearch, childLevel).AsFiltered(profileFilters) .AsPagination(pageSortOptions); var userProfileFilterContainer = new UserProfilesFilterContainer() { Login = profileFilters.Login, City = profileFilters.City, ClientName = profileFilters.ClientName, CreateDate = profileFilters.CreateDate, Email = profileFilters.Email, IsApproved = profileFilters.IsApproved, IsLockedOut = profileFilters.IsLockedOut, LastName = profileFilters.LastName, MobilePhone = profileFilters.MobilePhone, Roles = roleToSearch, Sex = profileFilters.Sex, TimeZone = profileFilters.TimeZone }; var gridSortOptions = new GridSortOptions { Column = pageSortOptions.Column, Direction = pageSortOptions.Direction }; var clientListContainer = new ListContainerModel <UserProfileModel, UserProfilesFilterContainer>() { PagedList = clientPagedList, FilterContainer = userProfileFilterContainer, GridSortOptions = gridSortOptions }; return(clientListContainer); }
public PartialViewResult AccountHistorySearchIndex(long clientId, ClientAccountActionModel accountFilters, PageSortOptions pageSortOptions) { var accountHistory = GetHistory(clientId, accountFilters, pageSortOptions); return(PartialView("AccountHistoryWithPaging", accountHistory)); }
public PartialViewResult AccountHistoryIndex(long clientId, ClientAccountActionModel accountFilters, PageSortOptions pageSortOptions) { var accountHistory = GetHistory(clientId, accountFilters, pageSortOptions); dynamic parameter = new ExpandoObject(); parameter.AccountHistory = accountHistory; parameter.ClientId = clientId; //Все последующие запросы направляем сюда (блять строчка на 3 часа, ебнуцо) ControllerContext.RouteData.Values["action"] = "AccountHistorySearchIndex"; return(PartialView("AccountHistoryIndex", parameter)); }
public ActionResult Index(UserProfileModel clientFilters, PageSortOptions pageSortOptions, int?childLevel) { return(View(GetUsersList(clientFilters, pageSortOptions, childLevel: childLevel))); }
public PartialViewResult GetUsersForClient(UserProfileModel clientFilters, PageSortOptions pageSortOptions, long clientId, int?childLevel) { return(PartialView("SearchResultsWithPaging", GetUsersList(clientFilters, pageSortOptions, clientId))); }