public int GetRequestSort(RequestId reqId) { RequestSort sort = ECSLocate.Center.GetRequestSort(reqId); if (sort == null) { return(0); } return(sort.sort); }
public RequestSort GetRequestSort(RequestId requestId) { for (int i = 0; i < requestSortAsset.requests.Count; i++) { RequestSort sort = requestSortAsset.requests[i]; if (sort.key.Equals(requestId.ToString())) { return(sort); } } ECSLocate.Log.LogError("请求没有配置排序", requestId); return(null); }
/// <summary> /// Получает данные выборки асинхронно с учетом всех установленных настроек. /// </summary> /// <returns>Метод возвращает ссылку на исходный селектор.</returns> public async Task <Селектор> ВыполнитьАсинх() { if (this.collectionMetadata == null) { throw new Exception("Не установлена коллекция для получения выборки."); } GetObjectList_Settings settings = new GetObjectList_Settings(); settings.AddSkippedProperties = true; settings.AddSkippedPropertiesSpecified = true; settings.PropertiesHierarchyType = "Hierarchy"; settings.FieldAutoinclusion = new RequestFieldAutoinclusionSettings(); settings.FieldAutoinclusion.DefaultFields = this.АвтозагрузкаПолей.ЗагружатьСтандартныеРеквизиты; settings.FieldAutoinclusion.DefaultFieldsSpecified = this.АвтозагрузкаПолей.ЗагружатьСтандартныеРеквизиты; settings.FieldAutoinclusion.CustomFields = this.АвтозагрузкаПолей.ЗагружатьПользовательскиеРеквизиты; settings.FieldAutoinclusion.CustomFieldsSpecified = this.АвтозагрузкаПолей.ЗагружатьПользовательскиеРеквизиты; settings.FieldAutoinclusion.Tables = this.АвтозагрузкаПолей.ЗагружатьТабличныеЧасти; settings.FieldAutoinclusion.TablesSpecified = this.АвтозагрузкаПолей.ЗагружатьТабличныеЧасти; if (this.limit > 0) { settings.Limit = this.limit; settings.LimitSpecified = true; } settings.Field = new RequestField[this.Поля.Count]; int i = 0; foreach (string fieldName in this.Поля) { RequestField field = new RequestField(); field.Key = fieldName; settings.Field[i] = field; i++; } settings.Filter = new RequestFilter[this.Отбор.Count]; for (i = 0; i < this.Отбор.Count; i++) { RequestFilter filter = new RequestFilter(); filter.Key = this.Отбор[i].Ключ; filter.Value = ValueBase.From(this.Отбор[i].Значение); filter.ComparisonType = this.Отбор[i].ВидСравнения.ToString(); settings.Filter[i] = filter; } settings.Sort = new RequestSort[this.Порядок.Count]; for (i = 0; i < this.Порядок.Count; i++) { RequestSort field = new RequestSort(); field.Key = this.Порядок[i].Ключ; field.Direction = this.Порядок[i].Направление == НаправлениеСортировки.Убывание ? "Убыв" : "Возр"; settings.Sort[i] = field; } Task <GetObjectListResponse> task = this.bromClient.SoapКлиент.GetObjectListAsync(this.ТипКоллекции.ToString(), this.ИмяКоллекции, settings); ValueArray objectList = (await task).@return; this.items.Clear(); if (objectList.Item != null) { foreach (ValueBase item in objectList.Item) { this.items.Add(item.GetValue(this.Клиент) as Ссылка); } } this.isModified = false; return(this); }
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)); } }