Beispiel #1
0
 public object ВыполнитьЗапрос(
     string текстЗапроса,
     IDictionary <string, object> параметры = null,
     IList <УсловиеОтбора> отборы           = null,
     IList <ПолеДанных> поля          = null,
     IList <Сортировка> порядок       = null,
     ОбходРезультатаЗапроса типОбхода = ОбходРезультатаЗапроса.Прямой)
 {
     return(this.ВыполнитьЗапросОбщее(текстЗапроса, параметры, отборы, поля, порядок, false, типОбхода));
 }
Beispiel #2
0
 public object ВыполнитьПакетныйЗапрос(
     string текстЗапроса, IDictionary <string, object>
     параметры = null, IList <УсловиеОтбора> отборы = null,
     IList <ПолеДанных> поля          = null,
     IList <Сортировка> порядок       = null,
     ОбходРезультатаЗапроса типОбхода = ОбходРезультатаЗапроса.Прямой,
     bool включатьВременныеДанные     = false)
 {
     return(this.ВыполнитьЗапросОбщее(текстЗапроса, параметры, отборы, поля, порядок, true, типОбхода, включатьВременныеДанные));
 }
Beispiel #3
0
        private async Task <object> ВыполнитьЗапросОбщееАсинх(string текстЗапроса, IDictionary <string, object> параметры = null, IList <УсловиеОтбора> отбор = null, IList <ПолеДанных> поля = null, IList <Сортировка> порядок = null, bool пакетный = false, ОбходРезультатаЗапроса типОбхода = ОбходРезультатаЗапроса.Прямой, bool включатьВременныеДанные = false)
        {
            ExecuteRequest_Settings settings = new ExecuteRequest_Settings();

            if (параметры != null)
            {
                settings.Parameter = new RequestParameter[параметры.Count];
                int i = 0;
                foreach (KeyValuePair <string, object> параметр in параметры)
                {
                    RequestParameter parameter = new RequestParameter();
                    parameter.Key         = параметр.Key;
                    parameter.Value       = ValueBase.From(параметр.Value);
                    settings.Parameter[i] = parameter;
                    i++;
                }
            }
            if (отбор != null)
            {
                settings.Filter = new RequestFilter[отбор.Count];
                for (int i = 0; i < отбор.Count; i++)
                {
                    RequestFilter filter = new RequestFilter();
                    filter.Key            = отбор[i].Ключ;
                    filter.Value          = ValueBase.From(отбор[i].Значение);
                    filter.ComparisonType = отбор[i].ВидСравнения.ToString();
                    settings.Filter[i]    = filter;
                }
            }
            if (поля != null)
            {
                settings.Field = new RequestField[поля.Count];
                int i = 0;
                foreach (ПолеДанных поле in поля)
                {
                    RequestField field = new RequestField();
                    field.Key         = поле.Ключ;
                    field.Name        = поле.Псевдоним;
                    settings.Field[i] = field;
                    i++;
                }
            }
            if (порядок != null)
            {
                settings.Sort = new RequestSort[порядок.Count];
                int i = 0;
                foreach (Сортировка элементПорядка in порядок)
                {
                    RequestSort sort = new RequestSort();
                    sort.Key         = элементПорядка.Ключ;
                    sort.Direction   = элементПорядка.Направление == НаправлениеСортировки.Убывание ? "Убыв" : "Возр";
                    settings.Sort[i] = sort;
                    i++;
                }
            }
            settings.QueryResultIteration         = типОбхода.ToString();
            settings.IncludeTemporalData          = включатьВременныеДанные;
            settings.IncludeTemporalDataSpecified = включатьВременныеДанные;

            if (!пакетный)
            {
                Task <ExecuteRequestResponse> task = this.SoapКлиент.ExecuteRequestAsync(текстЗапроса, settings);
                return((await task)[email protected](this));
            }
            else
            {
                Task <ExecuteRequestBatchResponse> task = this.SoapКлиент.ExecuteRequestBatchAsync(текстЗапроса, settings);

                return((await task)[email protected](this));
            }
        }
 /// <summary>
 /// Выполняет пакетный запрос и возвращает результат в виде массива объектов <see cref="ITworks.Brom.Types.ТаблицаЗначений">ТаблицаЗначений</see> или <see cref="ITworks.Brom.Types.ДеревоЗначений">ДеревоЗначений</see> в зависимости от типа обхода результатов.
 /// </summary>
 /// <param name="типОбхода">Алгоритм обхода результатов: прямой, по группировкам или по группировкам с иерархией.</param>
 /// <returns>Массив объектов <see cref="ITworks.Brom.Types.ТаблицаЗначений">ТаблицаЗначений</see> или <see cref="ITworks.Brom.Types.ДеревоЗначений">ДеревоЗначений</see> в зависимости от типа обхода результатов</returns>
 public Task <object> ВыполнитьПакетАсинх(ОбходРезультатаЗапроса типОбхода)
 {
     return(this.ВыполнитьПакетАсинх(типОбхода, false));
 }
Beispiel #5
0
        private object ВыполнитьЗапросОбщее(string текстЗапроса, IDictionary <string, object> параметры = null, IList <УсловиеОтбора> отбор = null, IList <ПолеДанных> поля = null, IList <Сортировка> порядок = null, bool пакетный = false, ОбходРезультатаЗапроса типОбхода = ОбходРезультатаЗапроса.Прямой, bool включатьВременныеДанные = false)
        {
            Task <object> task = this.ВыполнитьЗапросОбщееАсинх(текстЗапроса, параметры, отбор, поля, порядок, пакетный, типОбхода, включатьВременныеДанные);

            task.Wait();
            return(task.Result);
        }
 /// <summary>
 /// Выполняет пакетный запрос асинхронно и возвращает результат в виде массива объектов <see cref="ITworks.Brom.Types.ТаблицаЗначений">ТаблицаЗначений</see> или <see cref="ITworks.Brom.Types.ДеревоЗначений">ДеревоЗначений</see> в зависимости от типа обхода результатов.
 /// </summary>
 /// <param name="типОбхода">Алгоритм обхода результатов: прямой, по группировкам или по группировкам с иерархией.</param>
 /// <param name="включатьВременныеДанные">Если true, то данные временных таблицы выводятся целиком, в противном случае выводится только количество строк.</param>
 /// <returns>Массив объектов <see cref="ITworks.Brom.Types.ТаблицаЗначений">ТаблицаЗначений</see> или <see cref="ITworks.Brom.Types.ДеревоЗначений">ДеревоЗначений</see> в зависимости от типа обхода результатов</returns>
 public Task <object> ВыполнитьПакетАсинх(ОбходРезультатаЗапроса типОбхода, bool включатьВременныеДанные = false)
 {
     return(this.bromClient.ВыполнитьПакетныйЗапросАсинх(this.text, this.parameters, this.filters, this.fields, this.sort, типОбхода, включатьВременныеДанные));
 }
 /// <summary>
 /// Выполняет пакетный запрос и возвращает результат в виде массива объектов <see cref="ITworks.Brom.Types.ТаблицаЗначений">ТаблицаЗначений</see> или <see cref="ITworks.Brom.Types.ДеревоЗначений">ДеревоЗначений</see> в зависимости от типа обхода результатов.
 /// </summary>
 /// <param name="типОбхода">Алгоритм обхода результатов: прямой, по группировкам или по группировкам с иерархией.</param>
 /// <returns>Массив объектов <see cref="ITworks.Brom.Types.ТаблицаЗначений">ТаблицаЗначений</see> или <see cref="ITworks.Brom.Types.ДеревоЗначений">ДеревоЗначений</see> в зависимости от типа обхода результатов</returns>
 public object ВыполнитьПакет(ОбходРезультатаЗапроса типОбхода)
 {
     return(this.ВыполнитьПакет(типОбхода, false));
 }
 /// <summary>
 /// Выполняет пакетный запрос и возвращает результат в виде массива объектов <see cref="ITworks.Brom.Types.ТаблицаЗначений">ТаблицаЗначений</see> или <see cref="ITworks.Brom.Types.ДеревоЗначений">ДеревоЗначений</see> в зависимости от типа обхода результатов.
 /// </summary>
 /// <param name="типОбхода">Алгоритм обхода результатов: прямой, по группировкам или по группировкам с иерархией.</param>
 /// <param name="включатьВременныеДанные">Если true, то данные временных таблицы выводятся целиком, в противном случае выводится только количество строк.</param>
 /// <returns>Массив объектов <see cref="ITworks.Brom.Types.ТаблицаЗначений">ТаблицаЗначений</see> или <see cref="ITworks.Brom.Types.ДеревоЗначений">ДеревоЗначений</see> в зависимости от типа обхода результатов</returns>
 public object ВыполнитьПакет(ОбходРезультатаЗапроса типОбхода, bool включатьВременныеДанные)
 {
     return(this.bromClient.ВыполнитьПакетныйЗапрос(this.text, this.parameters, this.filters, this.fields, this.sort, типОбхода, включатьВременныеДанные));
 }
 /// <summary>
 /// Выполняет запрос асинхронно и возвращает результат в виде объекта <see cref="ITworks.Brom.Types.ТаблицаЗначений">ТаблицаЗначений</see> или <see cref="ITworks.Brom.Types.ДеревоЗначений">ДеревоЗначений</see> в зависимости от типа обхода результатов.
 /// </summary>
 /// <param name="типОбхода">Алгоритм обхода результатов: прямой, по группировкам или по группировкам с иерархией.</param>
 /// <returns><see cref="ITworks.Brom.Types.ТаблицаЗначений">ТаблицаЗначений</see> или <see cref="ITworks.Brom.Types.ДеревоЗначений">ДеревоЗначений</see> в зависимости от типа обхода результатов.</returns>
 public Task <object> ВыполнитьАсинх(ОбходРезультатаЗапроса типОбхода)
 {
     return(this.bromClient.ВыполнитьЗапросАсинх(this.text, this.parameters, this.filters, this.fields, this.sort, типОбхода));
 }
 /// <summary>
 /// Выполняет запрос и возвращает результат в виде объекта <see cref="ITworks.Brom.Types.ТаблицаЗначений">ТаблицаЗначений</see> или <see cref="ITworks.Brom.Types.ДеревоЗначений">ДеревоЗначений</see> в зависимости от типа обхода результатов.
 /// </summary>
 /// <param name="типОбхода">Алгоритм обхода результатов: прямой, по группировкам или по группировкам с иерархией.</param>
 /// <returns><see cref="ITworks.Brom.Types.ТаблицаЗначений">ТаблицаЗначений</see> или <see cref="ITworks.Brom.Types.ДеревоЗначений">ДеревоЗначений</see> в зависимости от типа обхода результатов.</returns>
 public object Выполнить(ОбходРезультатаЗапроса типОбхода)
 {
     return(this.bromClient.ВыполнитьЗапрос(this.text, this.parameters, this.filters, this.fields, this.sort, типОбхода));
 }