コード例 #1
0
        public async Task <CommandResult <CreateCustomerCommandResponse> > Handle(CreateCustomerCommand request, CancellationToken cancellationToken)
        {
            request.Validate();

            if (!request.Valid)
            {
                if (request.Notifications.Any())
                {
                    return(CommandResult <CreateCustomerCommandResponse> .Failed(HttpStatusCode.PreconditionFailed, "Pre condition failed", request.Notifications));
                }
            }

            var entityCreated = new CustomerEntity();

            entityCreated.New(request.Name, request.LastName, request.Email);
            await _customerRepository.CreateAsync(entityCreated);

            return(CommandResult <CreateCustomerCommandResponse> .Succeeded(new CreateCustomerCommandResponse()
            {
                Id = entityCreated.Id.ToString(),
                Name = entityCreated.Name,
                LastName = entityCreated.LastName,
                Email = entityCreated.Email
            }, HttpStatusCode.Created));
        }