Ejemplo n.º 1
0
        /// <summary>
        /// Обработать вызов
        /// </summary>
        /// <param name="parameters"></param>
        /// <param name="serviceProvider"></param>
        /// <param name="logger"></param>
        /// <returns></returns>
        public JsWorkerMethodResult HandleCall(IJsWorkerMethodCallParameters parameters, IServiceProvider serviceProvider, ILogger logger)
        {
            try
            {
                var result = FunctionLink(parameters, serviceProvider);

                return(result);
            }
            catch (Exception ex)
            {
                logger.LogError(ex, "Произошла ошибка внутри HandleCall");
                throw;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Обработка вызова метода
        /// </summary>
        /// <param name="methodName"></param>
        /// <param name="serviceProvider"></param>
        /// <param name="parameters"></param>
        /// <param name="executionContext"></param>
        /// <param name="logger"></param>
        /// <returns></returns>
        internal JsWorkerMethodResult HandleCall(string methodName, IServiceProvider serviceProvider, IJsWorkerMethodCallParameters parameters, JsExecutionContext executionContext, ILogger logger)
        {
            if (!Methods.ContainsKey(methodName))
            {
                throw new InvalidOperationException(string.Format(ExceptionTexts.MethodWithNameDoesNotExistInWorkerFormat, methodName, WorkerName));
            }

            var method = Methods[methodName];

            var countOfMethodParams = method.Description.Parameters?.Count ?? 0;

            var paramsInBag = parameters.GetParamsLength();

            if (paramsInBag < countOfMethodParams)
            {
                var mes = string.Format(ExceptionTexts.MethodWasCalledWithLessParamsFormat,
                                        methodName, WorkerName, countOfMethodParams, paramsInBag);

                throw new InvalidOperationException(mes);
            }

            return(method.Method.HandleCall(parameters, serviceProvider, logger));
        }