public async Task <CategoryViewModel> GetPage(Guid id, string?currentCustomerName = null)
        {
            var category = await _categoryService.Get(id);

            IReadOnlyCollection <CustomerDto> customers = new List <CustomerDto>();

            if (!string.IsNullOrWhiteSpace(currentCustomerName))
            {
                var customersFilter = new CustomerFilterBuilder()
                                      .SetEmail(currentCustomerName !)
                                      .Build();
                customers = await _customerService.GetFiltered(customersFilter);
            }

            var result = new CategoryViewModel
            {
                Offers = await _offerService.GetByCategory(category.Id !.Value),
                Title  = category.Name
            };

            if (customers.Count > 0)
            {
                result.CurrentCustomerId = customers.First().Id;
            }

            return(result);
        }
    }
Пример #2
0
        public async Task <Guid> GetCustomerId(string name)
        {
            #region validation

            if (string.IsNullOrWhiteSpace(name))
            {
                throw new ArgumentNullException(nameof(name));
            }

            #endregion

            var customersFilter = new CustomerFilterBuilder()
                                  .SetEmail(name)
                                  .Build();
            var customers = await GetFiltered(customersFilter);

            return(customers.First().Id !.Value);
        }
Пример #3
0
        public async Task <SearchResultsViewModel> GetSearchResults(string phrase, string?userName = null)
        {
            #region validation

            if (string.IsNullOrWhiteSpace(phrase))
            {
                throw new ArgumentNullException(nameof(phrase));
            }

            #endregion

            var offers = _unitOfWork.Offers
                         .GetAll()
                         .Where(x => x.Title.Contains(phrase))
                         .OrderByDescending(x => x.Sort)
                         .ThenByDescending(x => x.UpdateDate);

            var offersDto = await Task.Run(() => _mapper.Map <List <OfferDto> >(offers));

            IReadOnlyCollection <CustomerDto> customers = new List <CustomerDto>();
            if (!string.IsNullOrWhiteSpace(userName))
            {
                var customersFilter = new CustomerFilterBuilder()
                                      .SetEmail(userName !)
                                      .Build();
                customers = await _customerService.GetFiltered(customersFilter);
            }

            var result = new SearchResultsViewModel
            {
                Title  = phrase,
                Offers = offersDto
            };

            if (customers.Count > 0)
            {
                result.CurrentCustomerId = customers.First().Id;
            }

            return(result);
        }