public SearchOperator(JToken node) : base(node) { if (node["type"] != null) { this._Type = (SearchOperatorType)ParseEnum(typeof(SearchOperatorType), node["type"].Value <string>()); } if (node["items"] != null) { this._Items = new List <SearchItem>(); foreach (var arrayNode in node["items"].Children()) { this._Items.Add(ObjectFactory.Create <SearchItem>(arrayNode)); } } }
/// <summary> /// Закрытый метод создания объекта поиска по имени объекта /// </summary> /// <param name="searchConditionType">Параметр условия поиска, значение Enum указывает по какому критерию будет поиск</param> /// <param name="searchOperatorType">Оператор операции поиска</param> /// <param name="name">Имя объекта</param> /// <returns>Список объектов FindObject</returns> private FindObject MakeFindObject(SearchConditionType searchConditionType, SearchOperatorType searchOperatorType, string name) { var searchOperatorTypeInt = (int?)searchOperatorType; var searchConditionTypeInt = (int?)searchConditionType; var findObject = new FindObject { Conditions = new Condition[] { new Condition { Type = searchConditionTypeInt, Operator = searchOperatorTypeInt, Value = name } }, Filters = new Filter[] {} }; return(findObject); }
public SearchOperator(XmlElement node) : base(node) { foreach (XmlElement propertyNode in node.ChildNodes) { switch (propertyNode.Name) { case "type": this._Type = (SearchOperatorType)ParseEnum(typeof(SearchOperatorType), propertyNode.InnerText); continue; case "items": this._Items = new List <SearchItem>(); foreach (XmlElement arrayNode in propertyNode.ChildNodes) { this._Items.Add(ObjectFactory.Create <SearchItem>(arrayNode)); } continue; } } }
/// <summary> /// Метод поиска по имени объекта /// </summary> /// <param name="searchConditionType">Параметр условия поиска, значение Enum указывает по какому критерию будет поиск</param> /// <param name="searchOperatorType">Оператор операции поиска</param> /// <param name="name">Имя объекта</param> /// <param name="address">Относительный адрес API сервиса (опциональное значение)</param> /// <returns></returns> public async Task <List <Result> > SearchObjectAsync(SearchConditionType searchConditionType, SearchOperatorType searchOperatorType, string name, string address = @"api/objects/search") { var findObject = MakeFindObject(searchConditionType, searchOperatorType, name); var results = await Request(findObject, address); return(results); }
/// <summary> /// Метод поиска объекта по атрибуту в определнной группе объектов /// </summary> /// <param name="objectId">Id класса объекта для поиска</param> /// <param name="attibuteId">значение для поиска</param> /// <param name="filterTypes">Фильтр типа(по родительскому каталогу или по Id класса объекта)</param> /// <param name="searchCondition">Параметр условия поиска, значение Enum указывает по какому критерию будет поиск</param> /// <param name="searchOperatorType">Оператор операции поиска</param> /// <param name="address">Относительный адрес API сервиса (опциональное значение)</param> /// <returns>Список объектов Result</returns> public async Task <List <Result> > SearchObjectAsync(string objectId, string attibuteId, FilterTypes filterTypes, SearchConditionType searchCondition, SearchOperatorType searchOperatorType, string address = @"api/objects/search") { var findObject = MakeFindObject(objectId, attibuteId, filterTypes, searchCondition, searchOperatorType); var results = await Request(findObject, address); return(results); }
/// <summary> /// Закрытый метод создания объекта поиска по атрибуту объекта /// </summary> /// <param name="attributeId">значение для поиска</param> /// <param name="searchConditionType">Параметр условия поиска, значение Enum указывает по какому критерию будет поиск</param> /// <param name="searchOperatorType">Оператор операции поиска</param> /// <returns>Список объектов FindObject</returns> private FindObject MakeFindObject(string attributeId, SearchConditionType searchConditionType, SearchOperatorType searchOperatorType) { var searchOperatorTypeInt = (int?)searchOperatorType; var searchConditionTypeInt = (int?)searchConditionType; var findObject = new FindObject { Conditions = new Condition[] { new Condition { Type = searchConditionTypeInt, Operator = searchOperatorTypeInt, Attribute = attributeId } }, Filters = new Filter[] {} }; return(findObject); }
/// <summary> /// Закрытый метод создания объекта поиска по аттрибуту в определнной группе объектов /// </summary> /// <param name="objecteId">Id объекта для фильтра значения</param> /// <param name="attributeId">значение для поиска</param> /// <param name="filterTypes">Фильтр типа(по родительскому каталогу или по Id класса объекта)</param> /// <param name="searchConditionType">Параметр условия поиска, значение Enum указывает по какому критерию будет поиск</param> /// <param name="searchOperatorType">Оператор операции поиска</param> /// <returns>Список объектов FindObject</returns> private FindObject MakeFindObject(string objectId, string attributeId, FilterTypes filterTypes, SearchConditionType searchConditionType, SearchOperatorType searchOperatorType) { var newFindObject = new FindObject(); var findObject = new FindObject { Filters = new Filter[] { new Filter() { Type = (int)filterTypes, Value = objectId } }, Conditions = new Condition[] { new Condition { Type = (int?)searchConditionType, Operator = (int?)searchOperatorType, Attribute = attributeId } } }; return(findObject); }
/// <summary> /// Основной метод обновления данных по атрибуту /// </summary> /// <param name="existedAttributeId">Значение которое необходимо изменить</param> /// <param name="newValue">Значение на которое необходимо изменить</param> /// <param name="newVsearchConditionTypealue">Значение на которое необходимо изменить</param> /// <param name="searchOperatorType">Значение на которое необходимо изменить</param> /// <param name="address">Относительный адрес API сервиса (опциональное значение)</param> /// <returns>Список объектов Result</returns> public async Task <List <UpdateResult> > UpdateAttributeAsync(string existedAttributeId, string newValue, SearchConditionType searchConditionType, SearchOperatorType searchOperatorType, string address = @"api/objects") { var existedObjects = await search.SearchObjectAsync(existedAttributeId, searchConditionType, searchOperatorType, address); List <UpdateResult> results = new List <UpdateResult>(); foreach (var @object in existedObjects) { var sortedattributes = SortingAttributes(@object, existedAttributeId, newValue); results.AddRange(await SendRequestAsync(address, @object.ObjectId, sortedattributes)); } return(results); }