public async Task <ActionResult> Put([FromBody] ContactDtos contactDtos) { var TempContact = await applicationContext.Contact.FindAsync(contactDtos.ContactId); if (TempContact == null) { return(NotFound()); } foreach (ContactDetail contact in Mapping(contactDtos.ContactDetails, TempContact.ContactId)) { var details = applicationContext.ContactDetail.SingleOrDefault(tempContact => tempContact.ContactTypeId == contact.ContactTypeId && tempContact.ContactId == contact.ContactId); if (details != null) { contact.ContactDetailId = details.ContactDetailId; applicationContext.Entry(details).CurrentValues.SetValues(contact); } else { applicationContext.ContactDetail.Add(contact); } await applicationContext.SaveChangesAsync(); } applicationContext.Entry(TempContact).CurrentValues.SetValues(mapper.Map <Contact>(contactDtos)); await applicationContext.SaveChangesAsync(); return(Ok()); }
public async Task <ActionResult> Post([FromBody] ContactDtos contactDtos) { var contact = mapper.Map <Contact>(contactDtos); await applicationContext.Contact.AddAsync(contact); await applicationContext.SaveChangesAsync(); var contactDetails = Mapping(contactDtos.ContactDetails, contact.ContactId); contactDetails.ForEach(contactDetail => applicationContext.Add(contactDetail)); await applicationContext.SaveChangesAsync(); return(Ok()); }