示例#1
0
        public async Task <ActionResult <ContactDetailResponseModel> > CreateContact([FromBody] CreateContactRequestModel createRequest)
        {
            var businessRequest  = mapper.Map <BusinessRequests.CreateContactRequestModel>(createRequest);
            var businessResponse = await service.CreateContactAsync(businessRequest);

            return(CreatedAtAction(nameof(GetContactDetails), new { id = businessResponse.Id }, mapper.Map <ContactDetailResponseModel>(businessResponse)));
        }
示例#2
0
        public async Task <ContactDetailResponseModel> CreateContactAsync(CreateContactRequestModel requestModel)
        {
            var existingContact = await contactRepository.GetFirstAsync(x => x.Name == requestModel.Name && x.Address == requestModel.Address);

            if (existingContact != null)
            {
                var errorMessage = "Contact with given name and address already exist";
                var exception    = new BusinessException(errorMessage);
                exception.AddError(nameof(CreateContactRequestModel.Name), errorMessage);
                exception.AddError(nameof(CreateContactRequestModel.Address), errorMessage);
                throw exception;
            }

            var contact = mapper.Map <Contact>(requestModel);

            await contactRepository.AddAsync(contact);

            await contactRepository.SaveAsync();

            return(mapper.Map <ContactDetailResponseModel>(contact));
        }