public static void Execute <TEntity>(BusinessUtilMethod businessUtilMethod, TEntity result, string additionnalInfo) { switch (businessUtilMethod) { case BusinessUtilMethod.UniqueGenericListChecker: result.UniqueGenericListChecker(additionnalInfo); break; case BusinessUtilMethod.CheckDuplicatationForUniqueValue: result.CheckDuplicatationForUniqueValue(additionnalInfo); break; case BusinessUtilMethod.CheckRecordIsExist: result.CheckRecordIsExist(additionnalInfo); break; case BusinessUtilMethod.CheckUniqueValue: result.CheckUniqueValue(additionnalInfo); break; case BusinessUtilMethod.CheckNothing: break; default: throw new ArgumentOutOfRangeException(businessUtilMethod.ToString()); } }
protected async Task <T> CommonOperationAsync <T>(Func <Task <T> > func, BusinessUtilMethod businessUtilMethod, string additionalInfo) { try { var result = await func.Invoke(); BusinessUtil.Execute(businessUtilMethod, result, additionalInfo); return(result); } catch (Exception ex) { _logger.LogError(0, ex, $"{DefaultResponseMessages.AnErrorHasOccured} - {ex.Message}"); throw; } }