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); }
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); }