Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
 public void Save(Phonebook phonebook)
 {
     _dbContext.SaveAsync(phonebook.ConvertToEntity());
 }