本文整理汇总了C#中DocumentDatabase.Put方法的典型用法代码示例。如果您正苦于以下问题:C# DocumentDatabase.Put方法的具体用法?C# DocumentDatabase.Put怎么用?C# DocumentDatabase.Put使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DocumentDatabase
的用法示例。
在下文中一共展示了DocumentDatabase.Put方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ShouldNotSetAutoIndexesToAbandonedPriorityAfterDatabaseRecovery
public void ShouldNotSetAutoIndexesToAbandonedPriorityAfterDatabaseRecovery()
{
using (var db = new DocumentDatabase(new RavenConfiguration
{
DataDirectory = DataDir,
RunInUnreliableYetFastModeThatIsNotSuitableForProduction = false
}))
{
db.SpinBackgroundWorkers();
db.PutIndex(new RavenDocumentsByEntityName().IndexName, new RavenDocumentsByEntityName().CreateIndexDefinition());
db.Put("users/1", null, RavenJObject.Parse("{'Name':'Arek'}"), RavenJObject.Parse("{'Raven-Entity-Name':'Users'}"), null);
db.Put("users/2", null, RavenJObject.Parse("{'Name':'David'}"), RavenJObject.Parse("{'Raven-Entity-Name':'Users'}"), null);
var results = db.ExecuteDynamicQuery("Users", new IndexQuery()
{
PageSize = 128,
Start = 0,
Cutoff = SystemTime.UtcNow,
Query = "Name:Arek"
}, CancellationToken.None);
WaitForIndexing(db);
var autoIdexes = db.Statistics.Indexes.Where(x => x.Name.StartsWith("Auto")).ToList();
Assert.True(autoIdexes.Count > 0);
autoIdexes.ForEach(x => db.TransactionalStorage.Batch(accessor => accessor.Indexing.SetIndexPriority(x.Name, IndexingPriority.Idle)));
db.StartBackup(BackupDir, false, new DatabaseDocument());
WaitForBackup(db, true);
}
IOExtensions.DeleteDirectory(DataDir);
DocumentDatabase.Restore(new RavenConfiguration(), BackupDir, DataDir, s => { }, defrag: true);
using (var db = new DocumentDatabase(new RavenConfiguration
{
DataDirectory = DataDir,
RunInUnreliableYetFastModeThatIsNotSuitableForProduction = false,
}))
{
db.SpinBackgroundWorkers();
db.RunIdleOperations();
var autoIndexes = db.Statistics.Indexes.Where(x => x.Name.StartsWith("Auto")).ToList();
Assert.True(autoIndexes.Count > 0);
foreach (var indexStats in autoIndexes)
{
Assert.NotEqual(indexStats.Priority, IndexingPriority.Abandoned);
}
}
}
示例2: Execute
public static void Execute(this ICommandData self, DocumentDatabase database)
{
var deleteCommandData = self as DeleteCommandData;
if (deleteCommandData != null)
{
database.Delete(deleteCommandData.Key, deleteCommandData.Etag, deleteCommandData.TransactionInformation);
return;
}
var putCommandData = self as PutCommandData;
if (putCommandData != null)
{
var putResult = database.Put(putCommandData.Key, putCommandData.Etag, putCommandData.Document, putCommandData.Metadata, putCommandData.TransactionInformation);
putCommandData.Etag = putResult.ETag;
putCommandData.Key = putResult.Key;
return;
}
var patchCommandData = self as PatchCommandData;
if (patchCommandData != null)
{
database.ApplyPatch(patchCommandData.Key, patchCommandData.Etag, patchCommandData.Patches, patchCommandData.TransactionInformation);
var doc = database.Get(patchCommandData.Key, patchCommandData.TransactionInformation);
if (doc != null)
{
patchCommandData.Metadata = doc.Metadata;
patchCommandData.Etag = doc.Etag;
}
return;
}
}
示例3: RemoveWarnings
public static void RemoveWarnings(DocumentDatabase db, string prefix)
{
var document = db.Get("Raven/WarningMessages", null);
WarningMessagesHolder messagesHolder = document == null
? new WarningMessagesHolder()
: document.DataAsJson.JsonDeserialization<WarningMessagesHolder>();
// remove anything else with this prefix
var removed = messagesHolder.Messages.RemoveWhere(x => x.StartsWith(prefix) );
if (removed == 0)
return;
db.Put("Raven/WarningMessages", null,
RavenJObject.FromObject(messagesHolder),
new RavenJObject(), null);
}
示例4: AddWarning
public static void AddWarning(DocumentDatabase db, string prefix, string msg)
{
var document = db.Get("Raven/WarningMessages", null);
WarningMessagesHolder messagesHolder = document == null
? new WarningMessagesHolder()
: document.DataAsJson.JsonDeserialization<WarningMessagesHolder>();
var message = prefix + ": " + msg;
if (messagesHolder.Messages.Add(message) == false)
{
return; //already there
}
// remove anything else with this prefix
messagesHolder.Messages.RemoveWhere(x => x.StartsWith(prefix) && x != message);
db.Put("Raven/WarningMessages", null,
RavenJObject.FromObject(messagesHolder),
new RavenJObject(), null);
}
示例5: Execute
public void Execute(DocumentDatabase database)
{
var putResult = database.Put(Key, Etag, Document, Metadata, TransactionInformation);
Etag = putResult.ETag;
Key = putResult.Key;
}
示例6: Execute
private static void Execute(ICommandData self, DocumentDatabase database, BatchResult batchResult)
{
var deleteCommandData = self as DeleteCommandData;
if (deleteCommandData != null)
{
var result = database.Delete(deleteCommandData.Key, deleteCommandData.Etag, deleteCommandData.TransactionInformation);
if (batchResult != null)
batchResult.Deleted = result;
return;
}
var putCommandData = self as PutCommandData;
if (putCommandData != null)
{
var putResult = database.Put(putCommandData.Key, putCommandData.Etag, putCommandData.Document, putCommandData.Metadata, putCommandData.TransactionInformation);
putCommandData.Etag = putResult.ETag;
putCommandData.Key = putResult.Key;
return;
}
var patchCommandData = self as PatchCommandData;
if (patchCommandData != null)
{
var result = database.ApplyPatch(patchCommandData.Key, patchCommandData.Etag,
patchCommandData.Patches, patchCommandData.PatchesIfMissing, patchCommandData.Metadata,
patchCommandData.TransactionInformation);
if (batchResult != null)
batchResult.PatchResult = result.PatchResult;
var doc = database.Get(patchCommandData.Key, patchCommandData.TransactionInformation);
if (doc != null)
{
database.TransactionalStorage.ExecuteImmediatelyOrRegisterForSynchronization(() =>
{
patchCommandData.Metadata = doc.Metadata;
patchCommandData.Etag = doc.Etag;
});
}
return;
}
var advPatchCommandData = self as ScriptedPatchCommandData;
if (advPatchCommandData != null)
{
var result = database.ApplyPatch(advPatchCommandData.Key, advPatchCommandData.Etag,
advPatchCommandData.Patch, advPatchCommandData.PatchIfMissing, advPatchCommandData.Metadata,
advPatchCommandData.TransactionInformation, advPatchCommandData.DebugMode);
if (batchResult != null)
batchResult.PatchResult = result.Item1.PatchResult;
advPatchCommandData.AdditionalData = new RavenJObject { { "Debug", new RavenJArray(result.Item2) } };
if(advPatchCommandData.DebugMode)
{
advPatchCommandData.AdditionalData["Document"] = result.Item1.Document;
return;
}
var doc = database.Get(advPatchCommandData.Key, advPatchCommandData.TransactionInformation);
if (doc != null)
{
database.TransactionalStorage.ExecuteImmediatelyOrRegisterForSynchronization(() =>
{
advPatchCommandData.Metadata = doc.Metadata;
advPatchCommandData.Etag = doc.Etag;
});
}
return;
}
}