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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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()));
        }
Exemple #5
0
        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)));
        }
Exemple #6
0
        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()));
        }
Exemple #8
0
        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));
 }
Exemple #11
0
 public ActionResult Index(ClientModel clientFilters, PageSortOptions pageSortOptions)
 {
     return(View(GetClientsList(clientFilters, pageSortOptions)));
 }
Exemple #12
0
        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);
        }
Exemple #13
0
        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);
        }
Exemple #14
0
        public PartialViewResult AccountHistorySearchIndex(long clientId, ClientAccountActionModel accountFilters, PageSortOptions pageSortOptions)
        {
            var accountHistory = GetHistory(clientId, accountFilters, pageSortOptions);

            return(PartialView("AccountHistoryWithPaging", accountHistory));
        }
Exemple #15
0
        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));
        }
Exemple #16
0
 public ActionResult Index(UserProfileModel clientFilters, PageSortOptions pageSortOptions, int?childLevel)
 {
     return(View(GetUsersList(clientFilters, pageSortOptions, childLevel: childLevel)));
 }
Exemple #17
0
 public PartialViewResult GetUsersForClient(UserProfileModel clientFilters, PageSortOptions pageSortOptions, long clientId, int?childLevel)
 {
     return(PartialView("SearchResultsWithPaging", GetUsersList(clientFilters, pageSortOptions, clientId)));
 }