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