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)); }
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); }
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)); }
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); }