/// <summary> /// Add tag to text entity. /// </summary> /// <param name="tag"> the tag string </param> /// <param name="collectionId"> id of collection </param> /// <param name="textId"> id of text entity </param> /// <param name="category"> category for tag </param> /// <param name="relevance"> tags relevance, a number between 0 and 1 </param> /// <returns> </returns> public Tag AddTag(string tag, int collectionId, int textId, TagCategoryType? category = null, decimal? relevance = null) { var reqObj = new RequestBase<AddTagRequest> { Method = "text.addTag", Parameters = new AddTagRequest { Category = category, CollectionID = collectionId, ExternalTextID = null, Relevance = relevance, Tag = tag, TextID = textId } }; return CallSaploApi<Tag>(reqObj); }
/// <summary> /// Add tag to text entity. /// </summary> /// <param name="tag"> the tag string </param> /// <param name="collectionId"> id of collection </param> /// <param name="textId"> id of text entity </param> /// <param name="category"> category for tag </param> /// <param name="relevance"> tags relevance, a number between 0 and 1 </param> /// <param name="taskId"> unqiue identifier for this operation </param> /// <returns> </returns> public void AddTagAsync(string tag, int collectionId, int textId, TagCategoryType? category, decimal? relevance, Guid taskId) { var asyncOp = CreateOperationFromTaskId(taskId); new Action<string, int, int, TagCategoryType?, decimal?, AsyncOperation>( (t, collectionid, textid, cat, rel, operation) => { Tag result = null; Exception exception = null; try { result = AddTag(t, collectionid, textid, cat, rel); } catch (Exception ex) { exception = ex; } RemoveOperation(operation); operation.PostOperationCompleted(state => OnAddTagCompleted(state as TagCompletedEventArgs), new TagCompletedEventArgs(result, exception, false, operation.UserSuppliedState)); }).BeginInvoke(tag, collectionId, textId, category, relevance, asyncOp, null, null); }
/// <summary> /// Updates an text for an text entity. leave any property as null if no modification should be made. /// </summary> /// <param name="tag"> the tag to update </param> /// <param name="collectionId"> id of collection for text entity </param> /// <param name="textId"> id of text entity </param> /// <param name="newTag"> new name of tag </param> /// <param name="newCategory"> new category for tag </param> /// <param name="newRelevance"> new relevance </param> /// <returns> </returns> public Tag UpdateTag(string tag, int collectionId, int textId, string newTag = null, TagCategoryType? newCategory = null, decimal? newRelevance = null) { var reqObj = new RequestBase<UpdateTagRequest> { Method = "text.updateTag", Parameters = new UpdateTagRequest { CollectionID = collectionId, OriginalTag = tag, TextID = textId, UpdatedCategory = newCategory, UpdatedTag = newTag, UpdatedRelevance = newRelevance } }; return CallSaploApi<Tag>(reqObj); }