Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void UpdateContact(PersonalDetailDto personalDetailDto)
- {
- using (var context = base.CreateDbContext())
- {
- var dbObject = context.PersonalDetails
- .FirstOrDefault(c=>c.Id == personalDetailDto.Id);
- var detailsFromUpdate = personalDetailDto.ContactNumbers;
- personalDetailDto.ContactNumbers = null;
- _mapper.Map(personalDetailDto, dbObject);
- var contactDetails = context.ContactNumbers.Where(c => c.PersonalDetailId == personalDetailDto.Id);
- // map existing
- foreach (var contactDetail in contactDetails)
- {
- var updated = detailsFromUpdate.Find(c => c.Id == contactDetail.Id);
- if (updated != null)
- {
- _mapper.Map(updated, contactDetail);
- }
- else
- {
- context.ContactNumbers.Remove(contactDetail);
- }
- }
- // add new
- foreach (var contactNumberDto in detailsFromUpdate.Where(c => c.Id == 0))
- {
- var newItem = _mapper.Map<ContactNumber>(contactNumberDto);
- newItem.PersonalDetailId = personalDetailDto.Id;
- context.ContactNumbers.Add(newItem);
- }
- context.SaveChanges();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement