public async Task <IResultResponse> Delete(string document)
        {
            IResultResponse response  = new ResultResponse();
            CpfValidator    validator = new CpfValidator();
            var             result    = await validator.ValidateAsync(new Cpf(document));

            if (result.IsValid)
            {
                User user = await _unitOfWork.UserRepository.GetByDocument(document);

                if (user != null)
                {
                    await _unitOfWork.UserRepository.Delete(user);

                    _logger.LogInformation(LoggingEvent.Delete, "Usuário deletado com sucesso");
                }
                else
                {
                    response.AddMessage($"Usuário com o Cpf {document} não encontrado");
                    _logger.LogInformation(LoggingEvent.Delete, $"Usuário com o Cpf {document} não encontrado");
                }
            }
            else
            {
                response.AddMessage(result.Errors);
                _logger.LogInformation(LoggingEvent.Delete, $"Encontrado algum erro de validação");
            }

            return(response);
        }
        public async Task <IResultResponse> Create(UserCreateRequest request)
        {
            IResultResponse response = new ResultResponse();

            User user = _mapper.Map <User>(request);

            UserValidator validator = new UserValidator();
            var           result    = await validator.ValidateAsync(user);

            if (result.IsValid)
            {
                User userExist = await _unitOfWork.UserRepository.GetByDocument(user.Document.Value);

                if (userExist == null)
                {
                    await _unitOfWork.UserRepository.Create(user);

                    _logger.LogInformation(LoggingEvent.Create, "Usuário criado com sucesso");
                }
                else
                {
                    response.AddMessage($"Usuário com o Cpf {request.Document} já está cadastrado");
                    _logger.LogInformation(LoggingEvent.Create, $"Usuário com o Cpf {request.Document} já está cadastrado");
                }
            }
            else
            {
                response.AddMessage(result.Errors);
                _logger.LogInformation(LoggingEvent.Create, $"Encontrado algum erro de validação");
            }

            return(response);
        }
        public async Task <IResultResponse> Update(string document, UserUpdateRequest request)
        {
            IResultResponse response = new ResultResponse();
            User            user     = await _unitOfWork.UserRepository.GetByDocument(document);

            if (user == null)
            {
                response.AddMessage("Usuário não encontrado");
                _logger.LogInformation(LoggingEvent.Update, $"Usuário não encontrado");
                return(response);
            }

            user.SetName(new Name(request.Name));
            user.SetYearsOld(new YearsOld(request.YearsOld));
            user.SetEmail(new Email(request.Email));
            user.SetPhone(new Phone(request.Phone));
            user.SetAddress(request.Address);

            UserValidator validator = new UserValidator();
            var           result    = await validator.ValidateAsync(user);

            if (result.IsValid)
            {
                await _unitOfWork.UserRepository.Update(user);

                _logger.LogInformation(LoggingEvent.Update, $"Usuário atualizado com sucesso");
            }
            else
            {
                response.AddMessage(result.Errors);
                _logger.LogInformation(LoggingEvent.Update, $"Encontrado algum erro de validação");
            }

            return(response);
        }
        public async Task <IResultResponse> Handle(AddOrderCommand request, CancellationToken cancellationToken)
        {
            ResultResponse result = new ResultResponse();

            var validator = await new AddOrderCommandValidator(_uow).ValidateAsync(request);

            if (!validator.IsValid)
            {
                result.AddMessage(validator.Errors);
                return(result);
            }

            decimal orderValueTotal = await _productService.CalculateOrderTotalValue(request.OrderItems);

            Order order = await _orderService.AddOrder(orderValueTotal);

            foreach (var item in request.OrderItems)
            {
                decimal OrderItemvalueTotal = await _productService.CalculateOrderItemTotalValue(item);

                await _orderItemService.AddOrderItem(order, item, OrderItemvalueTotal);
            }

            await _uow.SaveChange();

            await _orderUserService.Add(order.OrderID, request.UserID);

            return(result);
        }
Beispiel #5
0
        public async Task <IResultResponse <List <GetOrdersWithOutUserResponse> > > Handle(GetOrdersWithOutUserCommand request, CancellationToken cancellationToken)
        {
            IResultResponse <List <GetOrdersWithOutUserResponse> > result = new ResultResponse <List <GetOrdersWithOutUserResponse> >();
            var validator = await new AddressIDPropertyValidator(_uow).ValidateAsync(request.AddressID);

            if (!validator.IsValid)
            {
                result.AddMessage(validator.Errors);
                return(result);
            }

            var orders = await _uow.OrderRepository.GetByAddressId(request.AddressID);

            var address = await _uow.AddressRepository.GetById(request.AddressID);

            result.Value = ConvertToModel(orders, address);

            return(result);
        }
        public async Task <IResultResponse <IList <UserResponse> > > Get()
        {
            IResultResponse <IList <UserResponse> > response = new ResultResponse <IList <UserResponse> >();
            IList <User> users = await _unitOfWork.UserRepository.Get();

            if (users == null || users?.Count == 0)
            {
                response.AddMessage("Não existe nenhum usuário cadastrado");
                _logger.LogInformation(LoggingEvent.GetAll, "Nenhum usuário cadastrado");
            }
            else
            {
                response.Value = _mapper.Map <IList <UserResponse> >(users);
            }



            return(response);
        }