Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        /// <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()));
        }
Ejemplo n.º 5
0
 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);
     }
 }
Ejemplo n.º 6
0
 public Task <ApiResponse <IReadOnlyCollection <SolutionDto> > > GetByFilterAsync(SolutionFilter filter)
 {
     return(PostAsync <SolutionFilter, ApiResponse <IReadOnlyCollection <SolutionDto> > >(_clientOptions.GetSolutionsByFilterUrl, filter));
 }
Ejemplo n.º 7
0
 public async Task <PageModel <SolutionModel> > GetSolutionsAsync(int?pageIndex, int?pageSize, SolutionFilter filter)
 {
     return(await _mediator.Send(new GetSolutions()
     {
         PageIndex = pageIndex, PageSize = pageSize, Filter = filter
     }));
 }
Ejemplo n.º 8
0
        public async Task <IActionResult> GetSolutionsByFilterAsync([FromBody] SolutionFilter filter)
        {
            var sols = await _solutionService.GetByFilterAsync(filter);

            return(ApiResult(sols));
        }