public SaveResult InsertOrUpdate(IEnumerable <TDTO> dtos) { try { using (OpenNosContext context = DataAccessHelper.CreateContext()) { context.Configuration.AutoDetectChangesEnabled = false; DbSet <TEntity> dbset = context.Set <TEntity>(); List <TEntity> entitytoadd = new List <TEntity>(); foreach (TDTO dto in dtos) { TEntity entity = Mapper.Map <TEntity>(dto); object value = PrimaryKey.GetValue(dto, null); TEntity entityfound = null; if (value is object[]) { entityfound = dbset.Find((object[])value); } else { entityfound = dbset.Find(value); } if (entityfound != null) { Mapper.Map(entity, entityfound); context.Entry(entityfound).CurrentValues.SetValues(entity); } if (value == null || entityfound == null) { //add in a temp list in order to avoid find(default(PK)) to find this element before savechanges entitytoadd.Add(entity); } } dbset.AddRange(entitytoadd); context.Configuration.AutoDetectChangesEnabled = true; context.SaveChanges(); return(SaveResult.Inserted); } } catch (Exception e) { Logger.Error(e); return(SaveResult.Error); } }
private AccountDTO Update(Account entity, AccountDTO account, OpenNosContext context) { if (entity != null) { // The Mapper breaks context.SaveChanges(), so we need to "map" the data by hand... // entity = _mapper.Map<Account>(account); entity.Authority = account.Authority; entity.Name = account.Name; entity.Password = account.Password; context.Entry(entity).State = EntityState.Modified; context.SaveChanges(); } return(_mapper.Map <AccountDTO>(entity)); }
protected override EquipmentOptionDTO Update(EquipmentOption entity, EquipmentOptionDTO equipment, OpenNosContext context) { if (entity == null) { return(_mapper.Map <EquipmentOptionDTO>(null)); } entity.Level = equipment.Level; entity.Type = equipment.Type; entity.Value = equipment.Value; entity.WearableInstanceId = equipment.WearableInstanceId; context.Entry(entity).State = EntityState.Modified; context.SaveChanges(); return(_mapper.Map <EquipmentOptionDTO>(entity)); }
public SaveResult InsertOrUpdate(ref TDTO dto) { try { using (OpenNosContext context = DataAccessHelper.CreateContext()) { TEntity entity = Mapper.Map <TEntity>(dto); DbSet <TEntity> dbset = context.Set <TEntity>(); object value = PrimaryKey.GetValue(dto, null); TEntity entityfound = null; if (value is object[]) { entityfound = dbset.Find((object[])value); } else { entityfound = dbset.Find(value); } if (entityfound != null) { Mapper.Map(entity, entityfound); context.Entry(entityfound).CurrentValues.SetValues(entity); context.SaveChanges(); } if (value == null || entityfound == null) { dbset.Add(entity); } context.SaveChanges(); dto = Mapper.Map <TDTO>(entity); return(SaveResult.Inserted); } } catch (Exception e) { Logger.Error(e); return(SaveResult.Error); } }