/// <summary>
 /// PerformActions
 /// </summary>
 /// <param name="action">action</param>
 /// <param name="unitOfWorkDbOption">unitOfWorkDbOption</param>
 protected void PerformActions(Action action, IUnitOfWorkDbOption unitOfWorkDbOption)
 {
     using (var uow = Provide(unitOfWorkDbOption))
     {
         action();
         uow.Complete();
     }
 }
 /// <summary>
 /// PerformQueries
 /// </summary>
 /// <typeparam name="T">T</typeparam>
 /// <param name="func">function callback</param>
 /// <param name="unitOfWorkDbOption">unitOfWorkDbOption</param>
 /// <returns></returns>
 protected T PerformQueries <T>(Func <T> func, IUnitOfWorkDbOption unitOfWorkDbOption)
 {
     using (var uow = Provide(unitOfWorkDbOption))
     {
         T result = func();
         uow.Complete();
         return(result);
     }
 }
 /// <summary>
 /// Provide
 /// </summary>
 /// <param name="dbOption">dbOption</param>
 /// <param name="scopeOption">scopeOption</param>
 /// <param name="isolationLevel">isolationLevel</param>
 /// <returns></returns>
 protected IUnitOfWork Provide(IUnitOfWorkDbOption dbOption, UnitOfWorkScopeOption scopeOption = UnitOfWorkScopeOption.Required,
                               IsolationLevel isolationLevel = IsolationLevel.ReadCommitted)
 {
     return(Provider.Provide(dbOption, scopeOption, isolationLevel));
 }