/// <summary> /// Ensures DateCreated and DateModified have values /// </summary> /// <param name="item">The item.</param> /// <param name="args">The args.</param> public static void EnsureDates(BaseItem item, ItemResolveArgs args) { if (!Path.IsPathRooted(item.Path)) { return; } // See if a different path came out of the resolver than what went in if (!string.Equals(args.Path, item.Path, StringComparison.OrdinalIgnoreCase)) { var childData = args.IsDirectory ? args.GetFileSystemEntryByPath(item.Path) : null; if (childData != null) { item.DateCreated = childData.CreationTimeUtc; item.DateModified = childData.LastWriteTimeUtc; } else { var fileData = FileSystem.GetFileSystemInfo(item.Path); if (fileData.Exists) { item.DateCreated = fileData.CreationTimeUtc; item.DateModified = fileData.LastWriteTimeUtc; } } } else { item.DateCreated = args.FileInfo.CreationTimeUtc; item.DateModified = args.FileInfo.LastWriteTimeUtc; } }
private static void EnsureDates(IFileSystem fileSystem, BaseItem item, ItemResolveArgs args) { // See if a different path came out of the resolver than what went in if (!fileSystem.AreEqual(args.Path, item.Path)) { var childData = args.IsDirectory ? args.GetFileSystemEntryByPath(item.Path) : null; if (childData != null) { SetDateCreated(item, childData); } else { var fileData = fileSystem.GetFileSystemInfo(item.Path); if (fileData.Exists) { SetDateCreated(item, fileData); } } } else { SetDateCreated(item, args.FileInfo); } }
/// <summary> /// Ensures DateCreated and DateModified have values /// </summary> /// <param name="fileSystem">The file system.</param> /// <param name="item">The item.</param> /// <param name="args">The args.</param> /// <param name="includeCreationTime">if set to <c>true</c> [include creation time].</param> public static void EnsureDates(IFileSystem fileSystem, BaseItem item, ItemResolveArgs args, bool includeCreationTime) { if (fileSystem == null) { throw new ArgumentNullException("fileSystem"); } if (item == null) { throw new ArgumentNullException("item"); } if (args == null) { throw new ArgumentNullException("args"); } // See if a different path came out of the resolver than what went in if (!string.Equals(args.Path, item.Path, StringComparison.OrdinalIgnoreCase)) { var childData = args.IsDirectory ? args.GetFileSystemEntryByPath(item.Path) : null; if (childData != null) { if (includeCreationTime) { SetDateCreated(item, fileSystem, childData); } item.DateModified = fileSystem.GetLastWriteTimeUtc(childData); } else { var fileData = fileSystem.GetFileSystemInfo(item.Path); if (fileData.Exists) { if (includeCreationTime) { SetDateCreated(item, fileSystem, fileData); } item.DateModified = fileSystem.GetLastWriteTimeUtc(fileData); } } } else { if (includeCreationTime) { SetDateCreated(item, fileSystem, args.FileInfo); } item.DateModified = fileSystem.GetLastWriteTimeUtc(args.FileInfo); } }