本文整理汇总了C#中IDataStoreContext.GetTagIdFromName方法的典型用法代码示例。如果您正苦于以下问题:C# IDataStoreContext.GetTagIdFromName方法的具体用法?C# IDataStoreContext.GetTagIdFromName怎么用?C# IDataStoreContext.GetTagIdFromName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IDataStoreContext
的用法示例。
在下文中一共展示了IDataStoreContext.GetTagIdFromName方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ResetTags
private static void ResetTags (IDataStoreContext ctx, TimeEntryData timeEntryData, TimeEntryJson json)
{
// Don't touch the tags when the field is null
if (json.Tags == null) {
return;
}
var con = ctx.Connection;
// Resolve tags to IDs:
var tagIds = new List<Guid> ();
foreach (var tagName in json.Tags) {
// Prevent importing empty (invalid) tags:
if (String.IsNullOrWhiteSpace (tagName)) {
continue;
}
var id = ctx.GetTagIdFromName (timeEntryData.WorkspaceId, tagName);
if (id == Guid.Empty) {
// Need to create a new tag:
var tagData = new TagData () {
Name = tagName,
WorkspaceId = timeEntryData.WorkspaceId,
};
con.Insert (tagData);
id = timeEntryData.Id;
}
tagIds.Add (id);
}
// Iterate over TimeEntryTags and determine which to keep and which to discard:
var inters = con.Table<TimeEntryTagData> ().Where (m => m.TimeEntryId == timeEntryData.Id);
var toDelete = new List<TimeEntryTagData> ();
foreach (var inter in inters) {
if (tagIds.Contains (inter.TagId)) {
tagIds.Remove (inter.TagId);
} else {
toDelete.Add (inter);
}
}
// Delete unused tags intermediate rows:
foreach (var inter in toDelete) {
ctx.Delete (inter);
}
// Create new intermediate rows:
foreach (var tagId in tagIds) {
ctx.Put (new TimeEntryTagData () {
TagId = tagId,
TimeEntryId = timeEntryData.Id,
});
}
}