public async Task <IActionResult> UpdateContact(ContactEditData contactEditData) { var response = await this._contactService.UpdateContactAsync(contactEditData); if (!response.Success) { return(BadRequest(response.Message)); } await _hubContext.Clients.All.BroadcastMessage(); return(Ok()); }
public async Task <ServiceResult> UpdateContactAsync(ContactEditData model) { var contact = await this.Context.Contacts .Include(c => c.PhoneNumbers) .FirstOrDefaultAsync(c => c.Id == model.Id); if (contact == null) { return(this.Failure("Contact not found")); } contact.Name = model.Name; contact.DateOfBirth = model.DateOfBirth; contact.Address = model.Address; // Wipeout old numbers and insert new ones if (contact.PhoneNumbers.Any()) { foreach (var oldPhoneNumber in contact.PhoneNumbers) { this.Context.Remove(oldPhoneNumber); } } foreach (var phoneNumber in model.PhoneNumbers) { var newPhoneNumber = new PhoneNumber { Number = phoneNumber.Number, CountryCode = phoneNumber.CountryCode, Description = phoneNumber.Description }; contact.PhoneNumbers.Add(newPhoneNumber); } this.Context.Update(contact); var response = await this.SaveAll(); return(response); }
public async Task <ServiceResult> InsertContactAsync(ContactEditData model) { var contact = this.CreateNewEntity <Contact>(); contact.Name = model.Name; contact.DateOfBirth = model.DateOfBirth; contact.Address = model.Address; var newPhoneNumbers = model.PhoneNumbers .Select(p => new PhoneNumber { ContactId = contact.Id, Number = p.Number, CountryCode = p.CountryCode, Description = p.Description }).ToList(); contact.PhoneNumbers = newPhoneNumbers; await this.Context.AddAsync(contact); var response = await this.SaveAll(); return(response); }