private List <T> SetEntityPreparation <T>(List <T> listEntity, EnumSaveUpdateDelete saveUpdateDelete) where T : class { if (saveUpdateDelete == EnumSaveUpdateDelete.Save) { listEntity = EntityPreparationBantuan.GetInstance.DictEntityPreparation["save"].SetPreparationEntity <T>(listEntity); } else if (saveUpdateDelete == EnumSaveUpdateDelete.Update) { listEntity = EntityPreparationBantuan.GetInstance.DictEntityPreparation["updatedefined"].SetPreparationEntity <T>(listEntity); } else { listEntity = EntityPreparationBantuan.GetInstance.DictEntityPreparation["deleteactivebool"].SetPreparationEntity <T>(listEntity); } return(listEntity); }
public bool SaveUpdateDelete <T1, T2>(T1 entity1, EnumSaveUpdateDelete enumSUDT1, T2 entity2, EnumSaveUpdateDelete enumSUDT2, out T1 @resultEntity1, out T2 @resultEntity2) where T1 : class where T2 : class { bool @bool = false; @resultEntity1 = null; @resultEntity2 = null; InterfaceRepoSaveUpdateDelete repoSaveUpdateDelete = new RepoWrapper(new MirrorDBContext()); var resultRepo = repoSaveUpdateDelete.SaveUpdateDelete <T1, T2>(entity1, enumSUDT1, entity2, enumSUDT2); if (resultRepo.IsSuccessConnection & resultRepo.IsSuccessQuery) { @resultEntity1 = (T1)resultRepo.ReturnValue[0].ReturnValue; @resultEntity2 = (T2)resultRepo.ReturnValue[1].ReturnValue; @bool = true; } return(@bool); }
public bool SaveUpdateDelete <T1, T2, T3, T4>(T1 entity1, EnumSaveUpdateDelete enumSUDT1, T2 entity2, EnumSaveUpdateDelete enumSUDT2, T3 entity3, EnumSaveUpdateDelete enumSUDT3, T4 entity4, EnumSaveUpdateDelete enumSUDT4, out T1 @identity1, out T2 @identity2, out T3 @identity3, out T4 @identity4) where T1 : class where T2 : class where T3 : class where T4 : class { bool @bool = false; @identity1 = null; @identity2 = null; @identity3 = null; @identity4 = null; InterfaceRepoSaveUpdateDelete repoSaveUpdateDelete = new RepoWrapper(new MirrorDBContext()); var resultRepo = repoSaveUpdateDelete.SaveUpdateDelete <T1, T2, T3, T4>(entity1, enumSUDT1, entity2, enumSUDT2, entity3, enumSUDT3, entity4, enumSUDT4); if (resultRepo.IsSuccessConnection & resultRepo.IsSuccessQuery) { @identity1 = (T1)resultRepo.ReturnValue[0].ReturnValue; @identity2 = (T2)resultRepo.ReturnValue[1].ReturnValue; @identity3 = (T3)resultRepo.ReturnValue[2].ReturnValue; @identity4 = (T4)resultRepo.ReturnValue[3].ReturnValue; @bool = true; } return(@bool); }
public async Task <bool> SaveUpdateDeleteAsync <T1, T2, T3, T4, T5>(T1 entity1, EnumSaveUpdateDelete enumSUDT1, T2 entity2, EnumSaveUpdateDelete enumSUDT2, T3 entity3, EnumSaveUpdateDelete enumSUDT3, T4 entity4, EnumSaveUpdateDelete enumSUDT4, T5 entity5, EnumSaveUpdateDelete enumSUDT5) where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class { bool @bool = false; InterfaceRepoSaveUpdateDeleteAsync repoSaveUpdateDeleteAsync = new RepoWrapperAsync(new MirrorDBContext()); var resultRepo = await repoSaveUpdateDeleteAsync.SaveUpdateDeleteAsync <T1, T2, T3, T4, T5>(entity1, enumSUDT1, entity2, enumSUDT2, entity3, enumSUDT3, entity4, enumSUDT4, entity5, enumSUDT5); if (resultRepo.IsSuccessConnection & resultRepo.IsSuccessQuery) { @bool = true; } return(@bool); }
public EFReturnValue SaveUpdateDeleteActiveBoolList <T1, T2, T3, T4, T5>(List <T1> listEntity1, EnumSaveUpdateDelete enumSUDT1, List <T2> listEntity2, EnumSaveUpdateDelete enumSUDT2, List <T3> listEntity3, EnumSaveUpdateDelete enumSUDT3, List <T4> listEntity4, EnumSaveUpdateDelete enumSUDT4, List <T5> listEntity5, EnumSaveUpdateDelete enumSUDT5) where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class { int hasil = 0; eFReturn = new EFReturnValue { IsSuccessConnection = false, IsSuccessQuery = false, ErrorMessage = ErrorMessage.EntityCannotBeNull, ReturnValue = null }; if (listEntity1 != null & listEntity2 != null & listEntity3 != null & listEntity4 != null & listEntity5 != null) { using (var context = DBContextBantuan.GetInstance.CreateConnectionContext()) { using (var contextTrans = context.Database.BeginTransaction()) { try { listEntity1 = this.SetEntityPreparation <T1>(listEntity1, enumSUDT1); listEntity2 = this.SetEntityPreparation <T2>(listEntity2, enumSUDT2); listEntity3 = this.SetEntityPreparation <T3>(listEntity3, enumSUDT3); listEntity4 = this.SetEntityPreparation <T4>(listEntity4, enumSUDT4); listEntity5 = this.SetEntityPreparation <T5>(listEntity5, enumSUDT5); if (enumSUDT1 == EnumSaveUpdateDelete.Save) { context.Set <T1>().AddRange(listEntity1); } if (enumSUDT2 == EnumSaveUpdateDelete.Save) { context.Set <T2>().AddRange(listEntity2); } if (enumSUDT3 == EnumSaveUpdateDelete.Save) { context.Set <T3>().AddRange(listEntity3); } if (enumSUDT4 == EnumSaveUpdateDelete.Save) { context.Set <T4>().AddRange(listEntity4); } if (enumSUDT5 == EnumSaveUpdateDelete.Save) { context.Set <T5>().AddRange(listEntity5); } if (enumSUDT1 == EnumSaveUpdateDelete.Delete) { var propUpdateDate = ColumnPropGet.GetInstance.GetColumnProps <T1>(MiscClass.MiscClass.ArrayUpdateDate); var propActiveBool = ColumnPropGet.GetInstance.GetColumnProps <T1>(MiscClass.MiscClass.ArrayActiveBool); foreach (var item in listEntity1) { context.Set <T1>().Attach(item); context.Entry(item).State = EntityState.Unchanged; if (propUpdateDate != null) { context.Entry(item).Property(propUpdateDate.Name).IsModified = true; } if (propActiveBool != null) { context.Entry(item).Property(propActiveBool.Name).IsModified = true; } } } if (enumSUDT2 == EnumSaveUpdateDelete.Delete) { var propUpdateDate = ColumnPropGet.GetInstance.GetColumnProps <T2>(MiscClass.MiscClass.ArrayUpdateDate); var propActiveBool = ColumnPropGet.GetInstance.GetColumnProps <T2>(MiscClass.MiscClass.ArrayActiveBool); foreach (var item in listEntity2) { context.Set <T2>().Attach(item); context.Entry(item).State = EntityState.Unchanged; if (propUpdateDate != null) { context.Entry(item).Property(propUpdateDate.Name).IsModified = true; } if (propActiveBool != null) { context.Entry(item).Property(propActiveBool.Name).IsModified = true; } } } if (enumSUDT3 == EnumSaveUpdateDelete.Delete) { var propUpdateDate = ColumnPropGet.GetInstance.GetColumnProps <T3>(MiscClass.MiscClass.ArrayUpdateDate); var propActiveBool = ColumnPropGet.GetInstance.GetColumnProps <T3>(MiscClass.MiscClass.ArrayActiveBool); foreach (var item in listEntity3) { context.Set <T3>().Attach(item); context.Entry(item).State = EntityState.Unchanged; if (propUpdateDate != null) { context.Entry(item).Property(propUpdateDate.Name).IsModified = true; } if (propActiveBool != null) { context.Entry(item).Property(propActiveBool.Name).IsModified = true; } } } if (enumSUDT4 == EnumSaveUpdateDelete.Delete) { var propUpdateDate = ColumnPropGet.GetInstance.GetColumnProps <T4>(MiscClass.MiscClass.ArrayUpdateDate); var propActiveBool = ColumnPropGet.GetInstance.GetColumnProps <T4>(MiscClass.MiscClass.ArrayActiveBool); foreach (var item in listEntity4) { context.Set <T4>().Attach(item); context.Entry(item).State = EntityState.Unchanged; if (propUpdateDate != null) { context.Entry(item).Property(propUpdateDate.Name).IsModified = true; } if (propActiveBool != null) { context.Entry(item).Property(propActiveBool.Name).IsModified = true; } } } if (enumSUDT5 == EnumSaveUpdateDelete.Delete) { var propUpdateDate = ColumnPropGet.GetInstance.GetColumnProps <T5>(MiscClass.MiscClass.ArrayUpdateDate); var propActiveBool = ColumnPropGet.GetInstance.GetColumnProps <T5>(MiscClass.MiscClass.ArrayActiveBool); foreach (var item in listEntity5) { context.Set <T5>().Attach(item); context.Entry(item).State = EntityState.Unchanged; if (propUpdateDate != null) { context.Entry(item).Property(propUpdateDate.Name).IsModified = true; } if (propActiveBool != null) { context.Entry(item).Property(propActiveBool.Name).IsModified = true; } } } if (enumSUDT1 == EnumSaveUpdateDelete.Update) { for (int i = 0; i < listEntity1.Count; i++) { List <PropertyInfo> colNotNullT1 = ColumnPropGet.GetInstance.GetPropertyColNotNull <T1>(listEntity1[i]); context.Set <T1>().Attach(listEntity1[i]); context.Entry(listEntity1[i]).State = EntityState.Unchanged; foreach (PropertyInfo property in colNotNullT1) { if (property != null) { context.Entry(listEntity1[i]).Property(property.Name).IsModified = true; } } } } if (enumSUDT2 == EnumSaveUpdateDelete.Update) { for (int i = 0; i < listEntity2.Count; i++) { List <PropertyInfo> colNotNullT2 = ColumnPropGet.GetInstance.GetPropertyColNotNull <T2>(listEntity2[i]); context.Set <T2>().Attach(listEntity2[i]); context.Entry(listEntity2[i]).State = EntityState.Unchanged; foreach (PropertyInfo property in colNotNullT2) { if (property != null) { context.Entry(listEntity2[i]).Property(property.Name).IsModified = true; } } } } if (enumSUDT3 == EnumSaveUpdateDelete.Update) { for (int i = 0; i < listEntity3.Count; i++) { List <PropertyInfo> colNotNullT3 = ColumnPropGet.GetInstance.GetPropertyColNotNull <T3>(listEntity3[i]); context.Set <T3>().Attach(listEntity3[i]); context.Entry(listEntity3[i]).State = EntityState.Unchanged; foreach (PropertyInfo property in colNotNullT3) { if (property != null) { context.Entry(listEntity3[i]).Property(property.Name).IsModified = true; } } } } if (enumSUDT4 == EnumSaveUpdateDelete.Update) { for (int i = 0; i < listEntity4.Count; i++) { List <PropertyInfo> colNotNullT4 = ColumnPropGet.GetInstance.GetPropertyColNotNull <T4>(listEntity4[i]); context.Set <T4>().Attach(listEntity4[i]); context.Entry(listEntity4[i]).State = EntityState.Unchanged; foreach (PropertyInfo property in colNotNullT4) { if (property != null) { context.Entry(listEntity4[i]).Property(property.Name).IsModified = true; } } } } if (enumSUDT5 == EnumSaveUpdateDelete.Update) { for (int i = 0; i < listEntity5.Count; i++) { List <PropertyInfo> colNotNullT5 = ColumnPropGet.GetInstance.GetPropertyColNotNull <T5>(listEntity5[i]); context.Set <T5>().Attach(listEntity5[i]); context.Entry(listEntity5[i]).State = EntityState.Unchanged; foreach (PropertyInfo property in colNotNullT5) { if (property != null) { context.Entry(listEntity5[i]).Property(property.Name).IsModified = true; } } } } hasil = context.SaveChanges(); contextTrans.Commit(); eFReturn = eFReturn.SetEFReturnValue(eFReturn, true, hasil, listEntity1, listEntity2, listEntity3, listEntity4, listEntity5); } catch (Exception ex) { eFReturn = eFReturn.SetEFReturnValue(eFReturn, false, 0, ex.Message); contextTrans.Rollback(); } } } } return(eFReturn); }
public async Task <EFReturnValue> SaveUpdateDeleteActiveBoolListAsync <T1>(List <T1> listEntity1, EnumSaveUpdateDelete enumSUDT1) where T1 : class { int hasil = 0; eFReturn = new EFReturnValue { IsSuccessConnection = false, IsSuccessQuery = false, ErrorMessage = ErrorMessage.EntityCannotBeNull, ReturnValue = null }; if (listEntity1 != null) { using (var context = DBContextBantuan.GetInstance.CreateConnectionContext()) { using (var contextTrans = context.Database.BeginTransaction()) { try { listEntity1 = this.SetEntityPreparation <T1>(listEntity1, enumSUDT1); if (enumSUDT1 == EnumSaveUpdateDelete.Save) { await context.Set <T1>().AddRangeAsync(listEntity1); } if (enumSUDT1 == EnumSaveUpdateDelete.Delete) { var propUpdateDate = ColumnPropGet.GetInstance.GetColumnProps <T1>(MiscClass.MiscClass.ArrayUpdateDate); var propActiveBool = ColumnPropGet.GetInstance.GetColumnProps <T1>(MiscClass.MiscClass.ArrayActiveBool); foreach (var item in listEntity1) { context.Set <T1>().Attach(item); context.Entry(item).State = EntityState.Unchanged; if (propUpdateDate != null) { context.Entry(item).Property(propUpdateDate.Name).IsModified = true; } if (propActiveBool != null) { context.Entry(item).Property(propActiveBool.Name).IsModified = true; } } } if (enumSUDT1 == EnumSaveUpdateDelete.Update) { for (int i = 0; i < listEntity1.Count; i++) { List <PropertyInfo> colNotNullT1 = ColumnPropGet.GetInstance.GetPropertyColNotNull <T1>(listEntity1[i]); context.Set <T1>().Attach(listEntity1[i]); context.Entry(listEntity1[i]).State = EntityState.Unchanged; foreach (PropertyInfo property in colNotNullT1) { if (property != null) { context.Entry(listEntity1[i]).Property(property.Name).IsModified = true; } } } } hasil = await context.SaveChangesAsync().ConfigureAwait(false); contextTrans.Commit(); eFReturn = eFReturn.SetEFReturnValue(eFReturn, true, hasil, listEntity1); } catch (Exception ex) { eFReturn = eFReturn.SetEFReturnValue(eFReturn, false, 0, ex.Message); contextTrans.Rollback(); } } } } return(eFReturn); }
public async Task <EFReturnValue> SaveUpdateDeleteListAsync <T1, T2, T3, T4>(List <T1> listEntity1, EnumSaveUpdateDelete enumSUDT1, List <T2> listEntity2, EnumSaveUpdateDelete enumSUDT2, List <T3> listEntity3, EnumSaveUpdateDelete enumSUDT3, List <T4> listEntity4, EnumSaveUpdateDelete enumSUDT4) where T1 : class where T2 : class where T3 : class where T4 : class { int hasil = 0; eFReturn = new EFReturnValue { IsSuccessConnection = false, IsSuccessQuery = false, ErrorMessage = ErrorMessage.EntityCannotBeNull, ReturnValue = null }; if (listEntity1 != null & listEntity2 != null & listEntity3 != null & listEntity4 != null) { using (var context = DBContextBantuan.GetInstance.CreateConnectionContext()) { using (var contextTrans = context.Database.BeginTransaction()) { try { listEntity1 = this.SetEntityPreparation <T1>(listEntity1, enumSUDT1); listEntity2 = this.SetEntityPreparation <T2>(listEntity2, enumSUDT2); listEntity3 = this.SetEntityPreparation <T3>(listEntity3, enumSUDT3); listEntity4 = this.SetEntityPreparation <T4>(listEntity4, enumSUDT4); if (enumSUDT1 == EnumSaveUpdateDelete.Save) { await context.Set <T1>().AddRangeAsync(listEntity1); } if (enumSUDT2 == EnumSaveUpdateDelete.Save) { await context.Set <T2>().AddRangeAsync(listEntity2); } if (enumSUDT3 == EnumSaveUpdateDelete.Save) { await context.Set <T3>().AddRangeAsync(listEntity3); } if (enumSUDT4 == EnumSaveUpdateDelete.Save) { await context.Set <T4>().AddRangeAsync(listEntity4); } if (enumSUDT1 == EnumSaveUpdateDelete.Delete) { context.Set <T1>().AttachRange(listEntity1); context.Set <T1>().RemoveRange(listEntity1); } if (enumSUDT2 == EnumSaveUpdateDelete.Delete) { context.Set <T2>().AttachRange(listEntity2); context.Set <T2>().RemoveRange(listEntity2); } if (enumSUDT3 == EnumSaveUpdateDelete.Delete) { context.Set <T3>().AttachRange(listEntity3); context.Set <T3>().RemoveRange(listEntity3); } if (enumSUDT4 == EnumSaveUpdateDelete.Delete) { context.Set <T4>().AttachRange(listEntity4); context.Set <T4>().RemoveRange(listEntity4); } if (enumSUDT1 == EnumSaveUpdateDelete.Update) { for (int i = 0; i < listEntity1.Count; i++) { List <PropertyInfo> colNotNullT1 = ColumnPropGet.GetInstance.GetPropertyColNotNull <T1>(listEntity1[i]); context.Set <T1>().Attach(listEntity1[i]); context.Entry(listEntity1[i]).State = EntityState.Unchanged; foreach (PropertyInfo property in colNotNullT1) { if (property != null) { context.Entry(listEntity1[i]).Property(property.Name).IsModified = true; } } } } if (enumSUDT2 == EnumSaveUpdateDelete.Update) { for (int i = 0; i < listEntity2.Count; i++) { List <PropertyInfo> colNotNullT2 = ColumnPropGet.GetInstance.GetPropertyColNotNull <T2>(listEntity2[i]); context.Set <T2>().Attach(listEntity2[i]); context.Entry(listEntity2[i]).State = EntityState.Unchanged; foreach (PropertyInfo property in colNotNullT2) { if (property != null) { context.Entry(listEntity2[i]).Property(property.Name).IsModified = true; } } } } if (enumSUDT3 == EnumSaveUpdateDelete.Update) { for (int i = 0; i < listEntity3.Count; i++) { List <PropertyInfo> colNotNullT3 = ColumnPropGet.GetInstance.GetPropertyColNotNull <T3>(listEntity3[i]); context.Set <T3>().Attach(listEntity3[i]); context.Entry(listEntity3[i]).State = EntityState.Unchanged; foreach (PropertyInfo property in colNotNullT3) { if (property != null) { context.Entry(listEntity3[i]).Property(property.Name).IsModified = true; } } } } if (enumSUDT4 == EnumSaveUpdateDelete.Update) { for (int i = 0; i < listEntity4.Count; i++) { List <PropertyInfo> colNotNullT4 = ColumnPropGet.GetInstance.GetPropertyColNotNull <T4>(listEntity4[i]); context.Set <T4>().Attach(listEntity4[i]); context.Entry(listEntity4[i]).State = EntityState.Unchanged; foreach (PropertyInfo property in colNotNullT4) { if (property != null) { context.Entry(listEntity4[i]).Property(property.Name).IsModified = true; } } } } hasil = await context.SaveChangesAsync().ConfigureAwait(false); contextTrans.Commit(); eFReturn = eFReturn.SetEFReturnValue(eFReturn, true, hasil, listEntity1, listEntity2, listEntity3, listEntity4); } catch (Exception ex) { eFReturn = eFReturn.SetEFReturnValue(eFReturn, false, 0, ex.Message); contextTrans.Rollback(); } } } } return(eFReturn); }
public EFReturnValue SaveUpdateDeleteActiveBool <T1, T2>(T1 entity1, EnumSaveUpdateDelete enumSUDT1, T2 entity2, EnumSaveUpdateDelete enumSUDT2) where T1 : class where T2 : class { int hasil = 0; eFReturn = new EFReturnValue { IsSuccessConnection = false, IsSuccessQuery = false, ErrorMessage = ErrorMessage.EntityCannotBeNull, ReturnValue = null }; if (entity1 != null & entity2 != null) { using (var context = DBContextBantuan.GetInstance.CreateConnectionContext()) { using (var contextTrans = context.Database.BeginTransaction()) { try { entity1 = this.SetEntityPreparation <T1>(entity1, enumSUDT1); entity2 = this.SetEntityPreparation <T2>(entity2, enumSUDT2); List <PropertyInfo> colNotNullT1 = ColumnPropGet.GetInstance.GetPropertyColNotNull <T1>(entity1); List <PropertyInfo> colNotNullT2 = ColumnPropGet.GetInstance.GetPropertyColNotNull <T2>(entity2); if (enumSUDT1 == EnumSaveUpdateDelete.Save) { context.Set <T1>().Add(entity1); } if (enumSUDT2 == EnumSaveUpdateDelete.Save) { context.Set <T2>().Add(entity2); } if (enumSUDT1 == EnumSaveUpdateDelete.Delete) { var propUpdateDate = ColumnPropGet.GetInstance.GetColumnProps <T1>(MiscClass.MiscClass.ArrayUpdateDate); var propActiveBool = ColumnPropGet.GetInstance.GetColumnProps <T1>(MiscClass.MiscClass.ArrayActiveBool); context.Set <T1>().Attach(entity1); context.Entry(entity1).State = EntityState.Unchanged; if (propUpdateDate != null) { context.Entry(entity1).Property(propUpdateDate.Name).IsModified = true; } if (propActiveBool != null) { context.Entry(entity1).Property(propActiveBool.Name).IsModified = true; } } if (enumSUDT2 == EnumSaveUpdateDelete.Delete) { var propUpdateDate = ColumnPropGet.GetInstance.GetColumnProps <T1>(MiscClass.MiscClass.ArrayUpdateDate); var propActiveBool = ColumnPropGet.GetInstance.GetColumnProps <T1>(MiscClass.MiscClass.ArrayActiveBool); context.Set <T2>().Attach(entity2); context.Entry(entity2).State = EntityState.Unchanged; if (propUpdateDate != null) { context.Entry(entity2).Property(propUpdateDate.Name).IsModified = true; } if (propActiveBool != null) { context.Entry(entity2).Property(propActiveBool.Name).IsModified = true; } } if (enumSUDT1 == EnumSaveUpdateDelete.Update) { context.Set <T1>().Attach(entity1); context.Entry(entity1).State = EntityState.Unchanged; foreach (PropertyInfo property in colNotNullT1) { if (property != null) { context.Entry(entity1).Property(property.Name).IsModified = true; } } } if (enumSUDT2 == EnumSaveUpdateDelete.Update) { context.Set <T2>().Attach(entity2); context.Entry(entity2).State = EntityState.Unchanged; foreach (PropertyInfo property in colNotNullT2) { if (property != null) { context.Entry(entity2).Property(property.Name).IsModified = true; } } } hasil = context.SaveChanges(); contextTrans.Commit(); eFReturn = eFReturn.SetEFReturnValue(eFReturn, true, hasil, entity1); } catch (Exception ex) { eFReturn = eFReturn.SetEFReturnValue(eFReturn, false, 0, ex.Message); contextTrans.Rollback(); } } } } return(eFReturn); }
public EFReturnValue SaveUpdateDelete <T1, T2, T3, T4, T5>(T1 entity1, EnumSaveUpdateDelete enumSUDT1, T2 entity2, EnumSaveUpdateDelete enumSUDT2, T3 entity3, EnumSaveUpdateDelete enumSUDT3, T4 entity4, EnumSaveUpdateDelete enumSUDT4, T5 entity5, EnumSaveUpdateDelete enumSUDT5) where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class { int hasil = 0; eFReturn = new EFReturnValue { IsSuccessConnection = false, IsSuccessQuery = false, ErrorMessage = ErrorMessage.EntityCannotBeNull, ReturnValue = null }; if (entity1 != null & entity2 != null & entity3 != null & entity4 != null & entity5 != null) { using (var context = DBContextBantuan.GetInstance.CreateConnectionContext()) { using (var contextTrans = context.Database.BeginTransaction()) { try { entity1 = this.SetEntityPreparation <T1>(entity1, enumSUDT1); entity2 = this.SetEntityPreparation <T2>(entity2, enumSUDT2); entity3 = this.SetEntityPreparation <T3>(entity3, enumSUDT3); entity4 = this.SetEntityPreparation <T4>(entity4, enumSUDT4); entity5 = this.SetEntityPreparation <T5>(entity5, enumSUDT5); List <PropertyInfo> colNotNullT1 = ColumnPropGet.GetInstance.GetPropertyColNotNull <T1>(entity1); List <PropertyInfo> colNotNullT2 = ColumnPropGet.GetInstance.GetPropertyColNotNull <T2>(entity2); List <PropertyInfo> colNotNullT3 = ColumnPropGet.GetInstance.GetPropertyColNotNull <T3>(entity3); List <PropertyInfo> colNotNullT4 = ColumnPropGet.GetInstance.GetPropertyColNotNull <T4>(entity4); List <PropertyInfo> colNotNullT5 = ColumnPropGet.GetInstance.GetPropertyColNotNull <T5>(entity5); if (enumSUDT1 == EnumSaveUpdateDelete.Save) { context.Set <T1>().Add(entity1); } if (enumSUDT2 == EnumSaveUpdateDelete.Save) { context.Set <T2>().Add(entity2); } if (enumSUDT3 == EnumSaveUpdateDelete.Save) { context.Set <T3>().Add(entity3); } if (enumSUDT4 == EnumSaveUpdateDelete.Save) { context.Set <T4>().Add(entity4); } if (enumSUDT5 == EnumSaveUpdateDelete.Save) { context.Set <T5>().Add(entity5); } if (enumSUDT1 == EnumSaveUpdateDelete.Delete) { context.Set <T1>().Attach(entity1); context.Set <T1>().Remove(entity1); } if (enumSUDT2 == EnumSaveUpdateDelete.Delete) { context.Set <T2>().Attach(entity2); context.Set <T2>().Remove(entity2); } if (enumSUDT3 == EnumSaveUpdateDelete.Delete) { context.Set <T3>().Attach(entity3); context.Set <T3>().Remove(entity3); } if (enumSUDT4 == EnumSaveUpdateDelete.Delete) { context.Set <T4>().Attach(entity4); context.Set <T4>().Remove(entity4); } if (enumSUDT5 == EnumSaveUpdateDelete.Delete) { context.Set <T5>().Attach(entity5); context.Set <T5>().Remove(entity5); } if (enumSUDT1 == EnumSaveUpdateDelete.Update) { context.Set <T1>().Attach(entity1); context.Entry(entity1).State = EntityState.Unchanged; foreach (PropertyInfo property in colNotNullT1) { if (property != null) { context.Entry(entity1).Property(property.Name).IsModified = true; } } } if (enumSUDT2 == EnumSaveUpdateDelete.Update) { context.Set <T2>().Attach(entity2); context.Entry(entity2).State = EntityState.Unchanged; foreach (PropertyInfo property in colNotNullT2) { if (property != null) { context.Entry(entity2).Property(property.Name).IsModified = true; } } } if (enumSUDT3 == EnumSaveUpdateDelete.Update) { context.Set <T3>().Attach(entity3); context.Entry(entity3).State = EntityState.Unchanged; foreach (PropertyInfo property in colNotNullT3) { if (property != null) { context.Entry(entity3).Property(property.Name).IsModified = true; } } } if (enumSUDT4 == EnumSaveUpdateDelete.Update) { context.Set <T4>().Attach(entity4); context.Entry(entity4).State = EntityState.Unchanged; foreach (PropertyInfo property in colNotNullT4) { if (property != null) { context.Entry(entity4).Property(property.Name).IsModified = true; } } } if (enumSUDT5 == EnumSaveUpdateDelete.Update) { context.Set <T5>().Attach(entity5); context.Entry(entity5).State = EntityState.Unchanged; foreach (PropertyInfo property in colNotNullT5) { if (property != null) { context.Entry(entity5).Property(property.Name).IsModified = true; } } } hasil = context.SaveChanges(); contextTrans.Commit(); eFReturn = eFReturn.SetEFReturnValue(eFReturn, true, hasil, entity1, entity2, entity3, entity4, entity5); } catch (Exception ex) { eFReturn = eFReturn.SetEFReturnValue(eFReturn, false, 0, ex.Message); contextTrans.Rollback(); } } } } return(eFReturn); }