Пример #1
0
        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();
        }
Пример #2
0
        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));
        }