public void Update(Phonebook phonebook) { try { if (phonebook.State == State.Modified) { _dbContext.Update(phonebook.ConvertToEntity()); return; } if (phonebook.Entries.Any()) { var entry = phonebook.Entries.First(); var entity = _dbContext.FindByIdAsync(phonebook.Id).Result; switch (entry.State) { case State.Added: entity.Entries.Add(entry.ConvertToEntity()); _dbContext.Update(entity); return; case State.Modified: var modifiedEntry = entity.Entries.First(x => x.Id == entry.Id); modifiedEntry.State = EntityState.Modified; modifiedEntry.Name = entry.Name; modifiedEntry.PhoneNumber = entry.PhoneNumber; _dbContext.Update(entity); return; case State.Deleted: var deletedEntry = entity.Entries.First(x => x.Id == entry.Id); entity.Entries.Remove(deletedEntry); _dbContext.Update(entity); return; default: throw new Exception("State unknown."); } } } catch (Exception ex) { _logger.Log(LogLevel.Critical, ex); throw new Exception(ex.Message); } }
public void Save(Phonebook phonebook) { _dbContext.SaveAsync(phonebook.ConvertToEntity()); }