public static Result <T> BeginTransaction <T>(this iDrugsEntities context, Func <T> func, Type loggerType, IsolationLevel isolationLevel = IsolationLevel.ReadCommitted) { var result = Try(() => { using (var transaction = context.Database.BeginTransaction(isolationLevel)) { try { if (func == null) { throw new ArgumentNullException(nameof(func)); } T res = func.Invoke(); transaction.Commit(); return(res); } catch (Exception ex) { transaction.Rollback(); throw ex; } } }, loggerType); return(result); }
/// <summary> /// Transaction wraper to properly handle Commit and Rollback operation. /// </summary> /// <param name="action"> /// Action that you want to perform on database, no need to defining Transaction logic. /// </param> public static Result BeginTransaction(this iDrugsEntities context, Action action, Type loggerType, IsolationLevel isolationLevel = IsolationLevel.ReadCommitted) { var result = Try(() => { using (var transaction = context.Database.BeginTransaction(isolationLevel)) { try { action?.Invoke(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } } }, loggerType); return(result); }
public DoctorEfRepo(iDrugsEntities context) { _context = context; }
public StatisticController(iDrugsEntities context) { _context = context; }
public WarehouseEfRepo(IMedicineRepo medicineRepo, iDrugsEntities context) { _medicineRepo = medicineRepo; _context = context; }
public OrderEfRepo(iDrugsEntities context) { _context = context; }
public DrugStoreStockEfRepo(iDrugsEntities context) { _context = context; }
public ApothecaryEfRepo(iDrugsEntities context) { _context = context; }
public MedicineEfRepo(iDrugsEntities context) { _context = context; }
public PrescriptionEfRepo(iDrugsEntities context) { _context = context; }