Ejemplo n.º 1
0
        private Expression <Func <Repair, bool> > CreatePredicate(GetRepairsRequest request)
        {
            Expression <Func <Repair, bool> > predicate = x =>
                                                          (!request.Id.HasValue || x.Id.Equals(request.Id)) &&
                                                          (!request.CustomerId.HasValue || x.CustomerId.Equals(request.CustomerId)) &&
                                                          (string.IsNullOrEmpty(request.CustomerFirstName) || x.Customer.FirstName.Contains(request.CustomerFirstName)) &&
                                                          (string.IsNullOrEmpty(request.CustomerLastName) || x.Customer.LastName.Contains(request.CustomerLastName)) &&
                                                          (string.IsNullOrEmpty(request.CustomerEmail) || x.Customer.Email.Contains(request.CustomerEmail)) &&
                                                          (string.IsNullOrEmpty(request.CustomerPhoneNumber) || x.Customer.PhoneNumber.Contains(request.CustomerPhoneNumber));

            return(predicate);
        }
Ejemplo n.º 2
0
        public async Task <List <GetRepairsResponse> > GetRepairsAsync(GetRepairsRequest request, CancellationToken cancellationToken)
        {
            var predicate = CreatePredicate(request);

            var result = await _repairRepository.GetAsync(predicate, cancellationToken,
                                                          include : x => x
                                                          .Include(x => x.Customer)
                                                          .Include(x => x.EmployeeRepairs)
                                                          .ThenInclude(x => x.User),
                                                          orderBy : x => x.OrderBy(x => x.Status));

            if (result == null)
            {
                throw new ServiceException(ErrorCodes.RepairWithGivenIdNotFound, $"Repair with provided id doesn't exist");
            }

            return(_mapper.Map <List <GetRepairsResponse> >(result));
        }
        public async Task <IActionResult> GetRepairs([FromQuery] GetRepairsRequest request, CancellationToken cancellationToken)
        {
            var result = await _repairService.GetRepairsAsync(request, cancellationToken);

            return(Ok(result));
        }