本文整理汇总了C#中IDataStoreContext.Delete方法的典型用法代码示例。如果您正苦于以下问题:C# IDataStoreContext.Delete方法的具体用法?C# IDataStoreContext.Delete怎么用?C# IDataStoreContext.Delete使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IDataStoreContext
的用法示例。
在下文中一共展示了IDataStoreContext.Delete方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Import
public ClientData Import (IDataStoreContext ctx, ClientJson json, Guid? localIdHint = null, ClientData mergeBase = null)
{
var data = GetByRemoteId<ClientData> (ctx, json.Id.Value, localIdHint);
var merger = mergeBase != null ? new ClientMerger (mergeBase) : null;
if (merger != null && data != null)
merger.Add (new ClientData (data));
if (json.DeletedAt.HasValue) {
if (data != null) {
ctx.Delete (data);
data = null;
}
} else if (merger != null || ShouldOverwrite (data, json)) {
data = data ?? new ClientData ();
ImportJson (ctx, data, json);
if (merger != null) {
merger.Add (data);
data = merger.Result;
}
data = ctx.Put (data);
}
return data;
}
示例2: Import
public TagData Import (IDataStoreContext ctx, TagJson json, Guid? localIdHint = null, bool forceUpdate = false)
{
var data = GetByRemoteId<TagData> (ctx, json.Id.Value, localIdHint);
if (json.DeletedAt.HasValue) {
if (data != null) {
ctx.Delete (data);
data = null;
}
} else if (data == null || forceUpdate || data.ModifiedAt < json.ModifiedAt) {
data = Merge (ctx, data, json);
data = ctx.Put (data);
}
return data;
}
示例3: Import
public ClientData Import (IDataStoreContext ctx, ClientJson json, Guid? localIdHint = null, ClientData mergeBase = null)
{
var log = ServiceContainer.Resolve<ILogger> ();
var data = GetByRemoteId<ClientData> (ctx, json.Id.Value, localIdHint);
var merger = mergeBase != null ? new ClientMerger (mergeBase) : null;
if (merger != null && data != null) {
merger.Add (new ClientData (data));
}
if (json.DeletedAt.HasValue) {
if (data != null) {
log.Info (Tag, "Deleting local data for {0}.", data.ToIdString ());
ctx.Delete (data);
data = null;
}
} else if (merger != null || ShouldOverwrite (data, json)) {
data = data ?? new ClientData ();
ImportJson (ctx, data, json);
if (merger != null) {
merger.Add (data);
data = merger.Result;
}
if (merger != null) {
log.Info (Tag, "Importing {0}, merging with local data.", data.ToIdString ());
} else {
log.Info (Tag, "Importing {0}, replacing local data.", data.ToIdString ());
}
data = ctx.Put (data);
} else {
log.Info (Tag, "Skipping import of {0}.", json.ToIdString ());
}
return data;
}
示例4: Import
public TimeEntryData Import (IDataStoreContext ctx, TimeEntryJson json, Guid? localIdHint = null, TimeEntryData mergeBase = null)
{
var log = ServiceContainer.Resolve<ILogger> ();
var data = GetByRemoteId<TimeEntryData> (ctx, json.Id.Value, localIdHint);
var merger = mergeBase != null ? new TimeEntryMerger (mergeBase) : null;
if (merger != null && data != null) {
merger.Add (new TimeEntryData (data));
}
if (json.DeletedAt.HasValue) {
if (data != null) {
// TODO: Delete TimeEntryTag intermediate data
log.Info (Tag, "Deleting local data for {0}.", data.ToIdString ());
ctx.Delete (data);
data = null;
}
} else if (merger != null || ShouldOverwrite (data, json)) {
data = data ?? new TimeEntryData ();
ImportJson (ctx, data, json);
if (merger != null) {
merger.Add (data);
data = merger.Result;
}
if (merger != null) {
log.Info (Tag, "Importing {0}, merging with local data.", data.ToIdString ());
} else {
log.Info (Tag, "Importing {0}, replacing local data.", data.ToIdString ());
}
data = ctx.Put (data);
// Also update tags from the JSON we are merging:
if (mergeBase == null || (mergeBase != null && mergeBase.ModifiedAt != data.ModifiedAt)) {
log.Info (Tag, "Resetting tags for {0}.", data.ToIdString ());
ResetTags (ctx, data, json);
}
} else {
log.Info (Tag, "Skipping import of {0}.", json.ToIdString ());
}
return data;
}
示例5: 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,
});
}
}
示例6: Import
public TimeEntryData Import (IDataStoreContext ctx, TimeEntryJson json, Guid? localIdHint = null, TimeEntryData mergeBase = null)
{
var data = GetByRemoteId<TimeEntryData> (ctx, json.Id.Value, localIdHint);
var merger = mergeBase != null ? new TimeEntryMerger (mergeBase) : null;
if (merger != null && data != null)
merger.Add (new TimeEntryData (data));
if (json.DeletedAt.HasValue) {
if (data != null) {
// TODO: Delete TimeEntryTag intermediate data
ctx.Delete (data);
data = null;
}
} else if (merger != null || ShouldOverwrite (data, json)) {
data = data ?? new TimeEntryData ();
ImportJson (ctx, data, json);
if (merger != null) {
merger.Add (data);
data = merger.Result;
}
data = ctx.Put (data);
// Also update tags from the JSON we are merging:
if (mergeBase == null || (mergeBase != null && mergeBase.ModifiedAt != data.ModifiedAt)) {
ResetTags (ctx, data, json);
}
}
return data;
}