Esempio n. 1
0
        public async Task <DisableCustomerResponse> Handle(DisableCustomerCommand request, CancellationToken cancellationToken)
        {
            var response = (DisableCustomerResponse)request.Response;

            await GetCustomerById(request, response);

            if (response.IsFailure)
            {
                return(response);
            }

            ExecuteDisableCustomer(request, response);
            if (response.IsFailure)
            {
                return(response);
            }

            await _customerRepository.Disable(Customer);

            var customerResponse = Customer.AdapterEntityToResponse();

            await _cacheRepository.Set(Customer.CustomerId, customerResponse);

            await Mediator.DispatchDomainEvents(Customer);

            return(response);
        }
Esempio n. 2
0
        public async Task <RegisterNewCustomerResponse> Handle(RegisterNewCustomerCommand request, CancellationToken cancellationToken)
        {
            var response = (RegisterNewCustomerResponse)request.Response;

            await GetCustomerByEmail(request, response);

            if (response.IsFailure)
            {
                return(response);
            }

            var email = Email.Create(request.Email);

            if (email.IsFailure)
            {
            }

            Customer = new Customer(Guid.NewGuid().ToString("N"), email.Value)
            {
                Address   = request.Address,
                BirthDate = request.BirthDate,
                Name      = request.Name,
            };

            await _customerRepository.Register(Customer);

            response.SetPayLoad(Customer.AdapterEntityToResponse());

            await _cacheRepository.Set(Customer.CustomerId, response.PayLoad);

            await Mediator.DispatchDomainEvents(Customer);

            return(response);
        }