public object ВыполнитьЗапрос( string текстЗапроса, IDictionary <string, object> параметры = null, IList <УсловиеОтбора> отборы = null, IList <ПолеДанных> поля = null, IList <Сортировка> порядок = null, ОбходРезультатаЗапроса типОбхода = ОбходРезультатаЗапроса.Прямой) { return(this.ВыполнитьЗапросОбщее(текстЗапроса, параметры, отборы, поля, порядок, false, типОбхода)); }
public object ВыполнитьПакетныйЗапрос( string текстЗапроса, IDictionary <string, object> параметры = null, IList <УсловиеОтбора> отборы = null, IList <ПолеДанных> поля = null, IList <Сортировка> порядок = null, ОбходРезультатаЗапроса типОбхода = ОбходРезультатаЗапроса.Прямой, bool включатьВременныеДанные = false) { return(this.ВыполнитьЗапросОбщее(текстЗапроса, параметры, отборы, поля, порядок, true, типОбхода, включатьВременныеДанные)); }
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)); }
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, типОбхода)); }