| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | using MediaBrowser.Controller.Entities;using MediaBrowser.Controller.IO;using System;using System.Collections.Generic;using System.IO;using System.Linq;using MediaBrowser.Controller.Library;namespace MediaBrowser.Controller.Resolvers{    /// <summary>    /// Class EntityResolutionHelper    /// </summary>    public static class EntityResolutionHelper    {        /// <summary>        /// Any extension in this list is considered a video file - can be added to at runtime for extensibility        /// </summary>        public static List<string> VideoFileExtensions = new List<string>        {                ".mkv",                ".m2t",                ".m2ts",                ".img",                ".iso",                ".ts",                ".rmvb",                ".mov",                ".avi",                ".mpg",                ".mpeg",                ".wmv",                ".mp4",                ".divx",                ".dvr-ms",                ".wtv",                ".ogm",                ".ogv",                ".asf",                ".m4v",                ".flv",                ".f4v",                ".3gp",                ".webm"        };        /// <summary>        /// Determines whether [is video file] [the specified path].        /// </summary>        /// <param name="path">The path.</param>        /// <returns><c>true</c> if [is video file] [the specified path]; otherwise, <c>false</c>.</returns>        public static bool IsVideoFile(string path)        {            var extension = Path.GetExtension(path) ?? string.Empty;            return VideoFileExtensions.Contains(extension, StringComparer.OrdinalIgnoreCase);        }        /// <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 (!args.Path.Equals(item.Path, StringComparison.OrdinalIgnoreCase))            {                var childData = args.IsDirectory ? args.GetFileSystemEntryByPath(item.Path) : null;                if (childData.HasValue)                {                    item.DateCreated = childData.Value.CreationTimeUtc;                    item.DateModified = childData.Value.LastWriteTimeUtc;                }                else                {                    var fileData = FileSystem.GetFileData(item.Path);                    if (fileData.HasValue)                    {                        item.DateCreated = fileData.Value.CreationTimeUtc;                        item.DateModified = fileData.Value.LastWriteTimeUtc;                    }                }            }            else            {                item.DateCreated = args.FileInfo.CreationTimeUtc;                item.DateModified = args.FileInfo.LastWriteTimeUtc;            }        }    }}
 |