/// <summary> /// Выполнение действия сервиса /// </summary> /// <typeparam name="TResult">Тип сущности</typeparam> /// <param name="userContext">Контекст пользователя</param> /// <param name="func">Функция, выполняющаяся при успешных проверках</param> /// <returns></returns> protected virtual ServiceEnumerationResult <TResult> RunEnumeration <TResult>( UserContext userContext, ISecurityContext securityContext, Func <List <TResult> > func) { var result = new ServiceEnumerationResult <TResult>(); if (userContext == null) { Throws.IfArgumentNull( UserContentNullExceptionMessage, userContext, "userContext"); } try { result.Result = func(); result.IsSucceeded = true; } catch (OperationExecutionException ex) { result.IsSucceeded = false; result.Error = new ServiceError { ErrorCode = -1, Message = ex.Message, Type = ServiceErrorType.BusinessLogicMessage }; } catch (DataException ex) { result.IsSucceeded = false; result.Error = new ServiceError { ErrorCode = -1, Message = ex.Message, Type = ServiceErrorType.BusinessLogicMessage }; } catch (Exception ex) { result.IsSucceeded = false; result.Error = new ServiceError { ErrorCode = -1, Message = ex.Message }; GetLogger()?.ErrorException( GeneralServiceExceptionMessage, ex); } return(result); }
/// <summary> /// Выполнение действия сервиса /// </summary> /// <typeparam name="TResult">Тип сущности</typeparam> /// <param name="userContext">Контекст пользователя</param> /// <param name="func">Функция, выполняющаяся при успешных проверках</param> /// <returns></returns> protected virtual ServiceEnumerationResult <TResult> RunEnumeration <TResult>( UserContext userContext, ISecurityContext securityContext, Func <ServiceEnumerationResult <TResult> > func) { var subResult = Run2(userContext, securityContext, func); ServiceEnumerationResult <TResult> result = null; if (subResult.IsSucceeded) { result = (ServiceEnumerationResult <TResult>)subResult; } else { result = new ServiceEnumerationResult <TResult> { Error = subResult.Error }; } return(result); }