public async Task <IActionResult> Products(int pageNumber = 1, int pageSize = 10, string orderBy = "", bool isAscending = true)
        {
            _logger.LogInformation("Request received for [{action}] GET action", nameof(ProductsController.Products));

            if (string.IsNullOrWhiteSpace(orderBy))
            {
                orderBy = nameof(Product.DateCreated);
            }

            var sortingParameters = new SortingParameters();

            sortingParameters.Add(orderBy, isAscending);
            var list = await _catalogService.GetProductsPagedAsync(null, sortingParameters, pageNumber, pageSize);

            var lkpCategories     = _lookupServiceFactory.Create <ProductCategory>();
            var productCategories = await lkpCategories.GetAllAsync();

            var vm = new ProductsViewModel
            {
                Products   = new PagedCollection <ProductDTO>(Mapper.Map(list).ToANew <IEnumerable <ProductDTO> >(), list.TotalItemCount, list.PageNumber, list.PageSize),
                Categories = productCategories.ToDictionary(key => key.Id, value => value.Name)
            };

            return(View(vm));
        }
Exemplo n.º 2
0
        private async Task <ProjectsViewModel> GetProjectsViewModelAsync(IPagingParameters pagingParameters)
        {
            var sortingParameter = new SortingParameters();

            sortingParameter.Add(new SortingPair(nameof(IProjectPoco.DateCreated), false));

            var statuses   = lookupService.GetAllTaskStatus();
            var domainList = await projectService.GetProjectsPagedAsync(pagingParameters, p => p.CompanyId == this.CompanyId, sortingParameter,
                                                                        this.ToNavPropertyString(nameof(IProjectPoco.Tasks)), this.ToNavPropertyString(nameof(IProjectPoco.ProjectUsers), nameof(IProjectUserPoco.User)));

            var vmProjects = new StaticPagedList <ProjectPreviewViewModel>(Mapper.Map <IEnumerable <ProjectPreviewViewModel> >(domainList.ToList()), pagingParameters.PageNumber, pagingParameters.PageSize, domainList.TotalItemCount);

            foreach (var project in vmProjects)
            {
                var tasks = domainList.First(p => p.Id == project.Id).Tasks;
                var team  = Mapper.Map <IEnumerable <UserPreviewViewModel> >(domainList.First(p => p.Id == project.Id).ProjectUsers.Select(d => d.User));

                project.TaskCount          = tasks.Count();
                project.CompletedTaskCount = tasks.Where(d => d.StatusId == statuses.First(s => s.Abrv == "CLOSED").Id).Count();
                project.LateTaskCount      = tasks.Where(p => p.DueDate <= DateTime.UtcNow).Count();
                project.TeamMembers        = team;
            }

            var vm = new ProjectsViewModel()
            {
                Projects = vmProjects
            };

            return(vm);
        }
        private async Task <IPagedList <UserPreviewViewModel> > GetUsersListViewModelsPaged(IPagingParameters pagingParameters, Guid companyId)
        {
            var sortingParameters = new SortingParameters();

            sortingParameters.Add("DateCreated", false);

            var users = await UserStore.GetUsersByCompanyIdPagedAsync(pagingParameters, sortingParameters, companyId,
                                                                      this.ToNavPropertyString(nameof(IUserPoco.UserRoles), nameof(IUserRolePoco.Role)));

            return(new StaticPagedList <UserPreviewViewModel>(Mapper.Map <IEnumerable <UserPreviewViewModel> >(users.ToList()), pagingParameters.PageNumber, pagingParameters.PageSize, users.TotalItemCount));
        }
        private async Task <IPagedList <TaskDTO> > GetTasksListPaged(IPagingParameters pagingParameters, Guid projectId)
        {
            var sortingParameters = new SortingParameters();

            sortingParameters.Add("DateUpdated", false);
            var tasks = await taskService.GetTasksPagedAsync(pagingParameters, p => p.ProjectId == projectId, sortingParameters,
                                                             this.ToNavPropertyString(nameof(ITaskPoco.AssignedToUser)),
                                                             this.ToNavPropertyString(nameof(ITaskPoco.TaskComments)));

            var vm = new StaticPagedList <TaskDTO>(Mapper.Map <IEnumerable <TaskDTO> >(tasks.ToList()), pagingParameters.PageNumber, pagingParameters.PageSize, tasks.TotalItemCount);

            return(vm);
        }
Exemplo n.º 5
0
        public async Task <IActionResult> Index(string categorySlug)
        {
            var sortingParameters = new SortingParameters();

            sortingParameters.Add("Id", false);

            Expression <Func <Product, bool> > predicate = categorySlug == null ? (Expression <Func <Product, bool> >)null : o => o.ProductCategory.Slug == categorySlug;

            var products   = _catalogService.GetProductsPagedAsync(predicate, sortingParameters, 1, 10);
            var categories = _lookupServiceFactory.Create <ProductCategory>().GetAllAsync();
            await Task.WhenAll(products, categories);

            var vm = new IndexViewModel
            {
                Products   = Mapper.Map(await products).ToANew <IEnumerable <ProductDTO> >(),
                Categories = Mapper.Map(await categories).ToANew <IEnumerable <CategoryDTO> >()
            };

            return(View(vm));
        }
Exemplo n.º 6
0
        private async Task <TeamViewModel> GetTeamViewModelPaged(Guid projectId, IPagingParameters pagingParameters)
        {
            var project = await projectService.GetProjectAsync(projectId,
                                                               this.ToNavPropertyString(nameof(IProjectPoco.ProjectUsers), this.ToNavPropertyString(nameof(IProjectUserPoco.User))));

            var sortingParameters = new SortingParameters();

            sortingParameters.Add("DateUpdated", false);

            var projectUsers = await projectService.GetProjectUsersPagedAsync(pagingParameters, p => p.ProjectId == projectId, sortingParameters,
                                                                              this.ToNavPropertyString(nameof(IProjectUserPoco.User)));

            var vmUsers = new StaticPagedList <UserPreviewViewModel>(Mapper.Map <IEnumerable <UserPreviewViewModel> >(projectUsers.Select(p => p.User).ToList()), pagingParameters.PageNumber, pagingParameters.PageSize, projectUsers.TotalItemCount);
            var vm      = new TeamViewModel()
            {
                ProjectId    = project.Id,
                ProjectName  = project.Name,
                ProjectUsers = vmUsers
            };

            await SetTeamListViewBagAsync(vm.ProjectUsers, project.CompanyId, vm.ProjectId);

            return(vm);
        }