// Internal Methods (4) /// <summary> /// Adds the tag order. /// </summary> /// <param name="data">The data.</param> /// <returns></returns> internal string AddTagOrder(string data) { try { string listId; string itemId; string tagId; ParseData(data, out listId, out itemId, out tagId); TagOrder tagOrder = _tagOrderRepository.Add(new TagOrder { TagId = new Guid(tagId), ListId = new Guid(listId), ItemId = int.Parse(itemId) }); return (new XElement("TagOrder", new XAttribute("Id", tagOrder.Id), new XAttribute("Order", tagOrder.Order)) .ToString()); } catch (APIException) { throw; } catch (Exception e) { throw new APIException((int)Errors.AddTagOrder, e.Message); } }
/// <summary> /// Removes the specified tag order. /// </summary> /// <param name="tagOrder">The tag order.</param> public void Remove(TagOrder tagOrder) { TagOrder order = Find(tagOrder.TagId, tagOrder.ListId, tagOrder.ItemId); if (order == null) { return; } _queryExecutor.ExecuteEpmLiveNonQuery( @"DELETE FROM TagOrders WHERE TagId = @TagId AND ListId = @ListId AND ItemId = @ItemId", new Dictionary <string, object> { { "@TagId", tagOrder.TagId }, { "@ListId", tagOrder.ListId }, { "@ItemId", tagOrder.ItemId } }); }
//�Public�Methods�(3)� /// <summary> /// Adds the specified tag order. /// </summary> /// <param name="tagOrder">The tag order.</param> /// <returns></returns> public TagOrder Add(TagOrder tagOrder) { TagOrder order = Find(tagOrder.TagId, tagOrder.ListId, tagOrder.ItemId); if (order != null) { return(order); } _queryExecutor.ExecuteEpmLiveNonQuery( @"INSERT INTO TagOrders (TagId, ListId, ItemId, TagOrder) VALUES (@TagId, @ListId, @ItemId, (SELECT (SELECT COALESCE(MAX(TagOrder), 0) FROM TagOrders WHERE TagId = @TagId) + 1))", new Dictionary <string, object> { { "@TagId", tagOrder.TagId }, { "@ListId", tagOrder.ListId }, { "@ItemId", tagOrder.ItemId } }); return(Find(tagOrder.TagId, tagOrder.ListId, tagOrder.ItemId)); }