public void Filter_Supplier_Returns_Own([ValueSource(nameof(Statuses))] SolutionStatus status) { var orgId = Guid.NewGuid().ToString(); var ctx = Creator.GetContext(orgId: orgId, role: Roles.Supplier); _context.Setup(c => c.HttpContext).Returns(ctx); var filter = new SolutionFilter(_context.Object); var soln1 = Creator.GetSolution(status: status, orgId: orgId); var soln2 = Creator.GetSolution(status: status); var soln3 = Creator.GetSolution(status: status); var solns = new[] { soln1, soln2, soln3 }; var res = filter.Filter(solns.AsQueryable()); res.Should().BeEquivalentTo(soln1); }
public void Filter_Admin_Returns_All([ValueSource(nameof(Statuses))] SolutionStatus status) { var ctx = Creator.GetContext(role: Roles.Admin); _context.Setup(c => c.HttpContext).Returns(ctx); var filter = new SolutionFilter(_context.Object); var solns = new[] { Creator.GetSolution(status: status), Creator.GetSolution(status: status), Creator.GetSolution(status: status) }; var res = filter.Filter(solns.AsQueryable()); res.Should().BeEquivalentTo(solns); }
public void Filter_None_Returns_NonDraft([ValueSource(nameof(Statuses))] SolutionStatus status) { var ctx = Creator.GetContext(role: "None"); _context.Setup(c => c.HttpContext).Returns(ctx); var filter = new SolutionFilter(_context.Object); var solns = new[] { Creator.GetSolution(status: status), Creator.GetSolution(status: status), Creator.GetSolution(status: status) }; var expSolns = solns.Where(x => x.Status != SolutionStatus.Draft); var res = filter.Filter(solns.AsQueryable()); res.Should().BeEquivalentTo(expSolns); }
/// <summary> /// Получение солюшнов по фильтру /// </summary> /// <param name="filter"></param> /// <returns></returns> public async Task <IReadOnlyCollection <SolutionDto> > GetByFilterAsync(SolutionFilter filter) { var sols = await _solutionRepository.GetAllAsync(); if (filter.CategoryId != null) { sols = sols.Where(s => s.CategoryId == filter.CategoryId); } if (filter.DeveloperId != null) { sols = sols.Where(s => s.UserId.Equals(filter.DeveloperId)); } if (filter.SolutionId != null) { sols = sols.Where(s => s.Id == filter.SolutionId); } else { sols = sols.Select(s => new Solution { Id = s.Id, Name = s.Name, Photos = (s.Photos.Any()) ? new List <Photo> { s.Photos.FirstOrDefault(x => x.Type.Equals("Logo")) } : null, Rate = s.Rate, Description = s.Description, Plans = s.Plans } ); } sols = sols.Skip((filter.Page - 1) * filter.Size).Take(filter.Size); return(_mapper.Map <IReadOnlyCollection <SolutionDto> >(sols.ToArray())); }
private void FilterAndSetSolutionCollection() { if (SourceSolutions != null) { var filteredSolutions = SourceSolutions; if (!string.IsNullOrEmpty(SolutionFilter)) { filteredSolutions = filteredSolutions .Where(k => { bool found = false; foreach (var item in SolutionFilter.Split(';')) { found = found ? found : k.DisplayName.ToLowerInvariant().IndexOf(item.ToLowerInvariant()) > -1; } return(found); }) .ToList(); } UpdateListToCollection(filteredSolutions, FilteredSourceSolutionsCollection); } }
public Task <ApiResponse <IReadOnlyCollection <SolutionDto> > > GetByFilterAsync(SolutionFilter filter) { return(PostAsync <SolutionFilter, ApiResponse <IReadOnlyCollection <SolutionDto> > >(_clientOptions.GetSolutionsByFilterUrl, filter)); }
public async Task <PageModel <SolutionModel> > GetSolutionsAsync(int?pageIndex, int?pageSize, SolutionFilter filter) { return(await _mediator.Send(new GetSolutions() { PageIndex = pageIndex, PageSize = pageSize, Filter = filter })); }
public async Task <IActionResult> GetSolutionsByFilterAsync([FromBody] SolutionFilter filter) { var sols = await _solutionService.GetByFilterAsync(filter); return(ApiResult(sols)); }