本文整理汇总了C#中IDocument.ContentStreamHash方法的典型用法代码示例。如果您正苦于以下问题:C# IDocument.ContentStreamHash方法的具体用法?C# IDocument.ContentStreamHash怎么用?C# IDocument.ContentStreamHash使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IDocument
的用法示例。
在下文中一共展示了IDocument.ContentStreamHash方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: MergeExistingFileWithRemoteFile
private bool MergeExistingFileWithRemoteFile(IFileInfo file, IDocument remoteDoc, Guid guid, out byte[] localHash) {
byte[] remoteHash = remoteDoc.ContentStreamHash();
localHash = null;
if (file.Length.Equals(remoteDoc.ContentStreamLength)) {
using (var f = file.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete)) {
localHash = SHA1Managed.Create().ComputeHash(f);
}
if (remoteHash != null) {
if (localHash != null && localHash.SequenceEqual(remoteHash)) {
if (remoteDoc.LastModificationDate != null) {
try {
file.LastWriteTimeUtc = (DateTime)remoteDoc.LastModificationDate;
} catch(IOException e) {
Logger.Debug("Cannot set last modification date", e);
}
}
file.Uuid = guid;
MappedObject mappedObject = new MappedObject(
file.Name,
remoteDoc.Id,
MappedObjectType.File,
remoteDoc.Parents[0].Id,
remoteDoc.ChangeToken,
remoteDoc.ContentStreamLength ?? file.Length)
{
Guid = guid,
LastLocalWriteTimeUtc = file.LastWriteTimeUtc,
LastRemoteWriteTimeUtc = remoteDoc.LastModificationDate,
LastChecksum = localHash,
ChecksumAlgorithmName = "SHA-1"
};
this.Storage.SaveMappedObject(mappedObject);
return true;
}
}
}
return false;
}
示例2: AddRemoteContentChangeTypeToFileEvent
private static void AddRemoteContentChangeTypeToFileEvent(FileEvent fileEvent, IMappedObject obj, IDocument remoteDoc) {
if (fileEvent == null || obj == null || remoteDoc == null) {
return;
}
byte[] remoteHash = remoteDoc.ContentStreamHash(obj.ChecksumAlgorithmName);
if (remoteHash != null && remoteHash.SequenceEqual(obj.LastChecksum)) {
fileEvent.RemoteContent = ContentChangeType.NONE;
} else {
fileEvent.RemoteContent = ContentChangeType.CHANGED;
}
}