/// <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; } }
/// <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)); }