public async Task CreateCustomerMember(CustomerMemberPostRp resource) { string createdBy = _identityService.GetClientId(); User existingUser = await _userRepository.GetUserByEmail(resource.Email); Customer customer = await _customerRepository.GetCustomerById(resource.CustomerId); if (customer == null) { await _domainManagerService.AddConflict($"The customer with id {resource.CustomerId} does not exists."); return; } var existingMember = customer.GetMemberByEmail(resource.Email); if (existingMember != null) { await _domainManagerService.AddConflict($"The member with email {resource.Email} has already been added."); return; } var newMember = customer.AddMember(resource.CustomerMemberId, existingUser?.Id, resource.Email, resource.Role, createdBy); _customerRepository.Update(customer); await _customerRepository.SaveChanges(); }
public async Task <IActionResult> CreateCustomerMember([FromBody] CustomerMemberPostRp resource) { if (!ModelState.IsValid) { return(this.BadRequest(ModelState)); } await _CustomerMemberService.CreateCustomerMember(resource); if (DomainManager.HasConflicts()) { return(this.Conflict(DomainManager.GetConflicts())); } return(this.Ok(base.DefaultResponse)); }