Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }