Exemple #1
0
        /// <summary>
        /// Reads the media properties.
        /// </summary>
        /// <param name="path">The path.</param>
        /// <param name="id">The id.</param>
        /// <param name="mediaconnector">The mediaconnector.</param>
        /// <remarks>
        /// Documented by DAC, 2008-08-06.
        /// </remarks>
        internal static void UpdateMediaProperties(string path, int id, Interfaces.DB.IDbMediaConnector mediaconnector)
        {
            Uri uri = new Uri(path);
            Stream mediaStream = uri.IsFile ? null : mediaconnector.GetMediaStream(id);
            mediaconnector.SetPropertyValue(id, MediaProperty.MimeType, GetMimeType(path));
            mediaconnector.SetPropertyValue(id, MediaProperty.Extension, Path.GetExtension(path));
            mediaconnector.SetPropertyValue(id, MediaProperty.MediaSize, uri.IsFile ? new FileInfo(path).Length.ToString() : mediaStream.Length.ToString());

            switch (GetMediaType(path))
            {
                case EMedia.Audio:
                    break;
                case EMedia.Video:
                    break;
                case EMedia.Image:
                    using (Image image = uri.IsFile ? Image.FromFile(path) : Image.FromStream(mediaStream))
                    {
                        mediaconnector.SetPropertyValue(id, MediaProperty.Width, image.Width.ToString());
                        mediaconnector.SetPropertyValue(id, MediaProperty.Height, image.Height.ToString());
                    }
                    break;
                case EMedia.Unknown:
                default:
                    break;
            }
        }