From 40e33fced935eddd64cda76544dee6e79e022940 Mon Sep 17 00:00:00 2001 From: Egor Neroslov Date: Wed, 28 Feb 2024 18:01:51 +0500 Subject: [PATCH] Getting request parameters in OData function --- _data/sidebars/flexberry-orm_sidebar.yml | 5 +++ ...o_query_parameters_in_odata_function.ru.md | 44 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 pages/products/flexberry-orm/odata-service/fo_query_parameters_in_odata_function.ru.md diff --git a/_data/sidebars/flexberry-orm_sidebar.yml b/_data/sidebars/flexberry-orm_sidebar.yml index 85c6b742d..4ae789094 100644 --- a/_data/sidebars/flexberry-orm_sidebar.yml +++ b/_data/sidebars/flexberry-orm_sidebar.yml @@ -633,6 +633,11 @@ entries: url: /fo_debugging-odatabackend-runtime.html output: web + - title: Getting request parameters in OData function + title_ru: Получение параметров запроса в OData функции + url: /fo_query_parameters_in_odata_function.html + output: web + - title: Монитор SQL-запросов output: web, pdf folderitems: diff --git a/pages/products/flexberry-orm/odata-service/fo_query_parameters_in_odata_function.ru.md b/pages/products/flexberry-orm/odata-service/fo_query_parameters_in_odata_function.ru.md new file mode 100644 index 000000000..6a49aa88d --- /dev/null +++ b/pages/products/flexberry-orm/odata-service/fo_query_parameters_in_odata_function.ru.md @@ -0,0 +1,44 @@ +--- +title: Получение параметров запроса в OData функции +sidebar: flexberry-orm_sidebar +keywords: Flexberry ORM ODataService, DataService, OData, OData-function +summary: Получение параметров запроса в OData функции +toc: true +permalink: ru/fo_query_parameters_in_odata_function.html +lang: ru +--- + +### Получение параметров запроса в OData функции + +#### Регистрация функции + +Для регистрации функции с определенными параметрами запроса необходимо выполнить следующие шаги. + +```csharp +using Function = NewPlatform.Flexberry.ORM.ODataService.Functions.Function; + +// Создаем словарь для хранения типов параметров. +var parameterTypes = new Dictionary +{ + { "id", typeof(int) }, + { "name", typeof(string) }, +}; + +// Регистрируем функцию с заданными параметрами. +token.Functions.Register(new Function("SearchData", SearchData, typeof(List), parameterTypes)); +``` + +В конструктор Function передается название функции, сама функция, тип возвращаемого значения и параметры запроса. + +#### Создание функции для обработки запроса + +Определить функцию, которая будет обрабатывать запрос и получать параметры. + +```csharp +public static object SearchData(QueryParameters queryParameters, IDictionary parameters) +{ + var lcs = queryParameters.CreateLcs(typeof(CustomType)); + ... + return list; +} +```