From 3570ba4b9563a6c666ceaaac254a0c76fac92e31 Mon Sep 17 00:00:00 2001 From: Shannon Deminick Date: Tue, 8 Jan 2013 01:43:01 +0300 Subject: [PATCH] Un-comments LegacyUploadFieldWorkaround with changes that make use of the MediaFileSystem. --- .../DataTypes/LegacyUploadFieldWorkaround.cs | 176 +++++++++--------- 1 file changed, 88 insertions(+), 88 deletions(-) diff --git a/src/Umbraco.Web/Strategies/DataTypes/LegacyUploadFieldWorkaround.cs b/src/Umbraco.Web/Strategies/DataTypes/LegacyUploadFieldWorkaround.cs index f737173795..aaac98c89c 100644 --- a/src/Umbraco.Web/Strategies/DataTypes/LegacyUploadFieldWorkaround.cs +++ b/src/Umbraco.Web/Strategies/DataTypes/LegacyUploadFieldWorkaround.cs @@ -12,108 +12,108 @@ using umbraco.interfaces; namespace Umbraco.Web.Strategies.DataTypes { - ///// - ///// Before Save Content/Media subscriber that checks for Upload fields and updates related fields accordingly. - ///// - ///// - ///// This is an intermediate fix for the legacy DataTypeUploadField and the FileHandlerData, so that properties - ///// are saved correctly when using the Upload field on a (legacy) Document or Media class. - ///// - //public class LegacyUploadFieldWorkaround : IApplicationStartupHandler - //{ - // public LegacyUploadFieldWorkaround() - // { - // global::umbraco.cms.businesslogic.media.Media.BeforeSave += MediaBeforeSave; - // global::umbraco.cms.businesslogic.web.Document.BeforeSave += DocumentBeforeSave; - // } + /// + /// Before Save Content/Media subscriber that checks for Upload fields and updates related fields accordingly. + /// + /// + /// This is an intermediate fix for the legacy DataTypeUploadField and the FileHandlerData, so that properties + /// are saved correctly when using the Upload field on a (legacy) Document or Media class. + /// + public class LegacyUploadFieldWorkaround : IApplicationStartupHandler + { + public LegacyUploadFieldWorkaround() + { + global::umbraco.cms.businesslogic.media.Media.BeforeSave += MediaBeforeSave; + global::umbraco.cms.businesslogic.web.Document.BeforeSave += DocumentBeforeSave; + } - // void DocumentBeforeSave(global::umbraco.cms.businesslogic.web.Document sender, global::umbraco.cms.businesslogic.SaveEventArgs e) - // { - // if (UmbracoSettings.ImageAutoFillImageProperties != null) - // { - // var property = sender.GenericProperties.FirstOrDefault(x => x.PropertyType.DataTypeDefinition.DataType.Id == new Guid("5032a6e6-69e3-491d-bb28-cd31cd11086c")); - // if (property == null) - // return; + void DocumentBeforeSave(global::umbraco.cms.businesslogic.web.Document sender, global::umbraco.cms.businesslogic.SaveEventArgs e) + { + if (UmbracoSettings.ImageAutoFillImageProperties != null) + { + var property = sender.GenericProperties.FirstOrDefault(x => x.PropertyType.DataTypeDefinition.DataType.Id == new Guid("5032a6e6-69e3-491d-bb28-cd31cd11086c")); + if (property == null) + return; - // FillProperties(sender.Content, property); - // } - // } + FillProperties(sender.Content, property); + } + } - // void MediaBeforeSave(global::umbraco.cms.businesslogic.media.Media sender, global::umbraco.cms.businesslogic.SaveEventArgs e) - // { - // if (UmbracoSettings.ImageAutoFillImageProperties != null) - // { - // var property = sender.GenericProperties.FirstOrDefault(x => x.PropertyType.DataTypeDefinition.DataType.Id == new Guid("5032a6e6-69e3-491d-bb28-cd31cd11086c")); - // if (property == null) - // return; + void MediaBeforeSave(global::umbraco.cms.businesslogic.media.Media sender, global::umbraco.cms.businesslogic.SaveEventArgs e) + { + if (UmbracoSettings.ImageAutoFillImageProperties != null) + { + var property = sender.GenericProperties.FirstOrDefault(x => x.PropertyType.DataTypeDefinition.DataType.Id == new Guid("5032a6e6-69e3-491d-bb28-cd31cd11086c")); + if (property == null) + return; - // FillProperties(sender.MediaItem, property); - // } - // } + FillProperties(sender.MediaItem, property); + } + } - // private void FillProperties(IContentBase content, global::umbraco.cms.businesslogic.property.Property property) - // { - // XmlNode uploadFieldConfigNode = global::umbraco.UmbracoSettings.ImageAutoFillImageProperties.SelectSingleNode(string.Format("uploadField [@alias = \"{0}\"]", property.PropertyType.Alias)); + private void FillProperties(IContentBase content, global::umbraco.cms.businesslogic.property.Property property) + { + XmlNode uploadFieldConfigNode = global::umbraco.UmbracoSettings.ImageAutoFillImageProperties.SelectSingleNode(string.Format("uploadField [@alias = \"{0}\"]", property.PropertyType.Alias)); - // if (uploadFieldConfigNode != null) - // { - // var fileSystem = FileSystemProviderManager.Current.GetFileSystemProvider(); - // var path = fileSystem.GetRelativePath(property.Value.ToString()); + if (uploadFieldConfigNode != null) + { + var fileSystem = FileSystemProviderManager.Current.GetFileSystemProvider(); + var path = fileSystem.GetRelativePath(property.Value.ToString()); - // if (string.IsNullOrWhiteSpace(path) == false && fileSystem.FileExists(path)) - // { - // long size; - // using (var fileStream = fileSystem.OpenFile(path)) - // { - // size = fileStream.Length; - // } + if (string.IsNullOrWhiteSpace(path) == false && fileSystem.FileExists(path)) + { + long size; + using (var fileStream = fileSystem.OpenFile(path)) + { + size = fileStream.Length; + } - // var extension = fileSystem.GetExtension(path) != null - // ? fileSystem.GetExtension(path).Substring(1).ToLowerInvariant() - // : ""; + var extension = fileSystem.GetExtension(path) != null + ? fileSystem.GetExtension(path).Substring(1).ToLowerInvariant() + : ""; - // var supportsResizing = ("," + UmbracoSettings.ImageFileTypes + ",").Contains(string.Format(",{0},", extension)); - // var dimensions = supportsResizing ? GetDimensions(path, fileSystem) : null; + var isImageType = ("," + UmbracoSettings.ImageFileTypes + ",").Contains(string.Format(",{0},", extension)); + var dimensions = isImageType ? GetDimensions(path, fileSystem) : null; - // // only add dimensions to web images - // UpdateProperty(uploadFieldConfigNode, content, "widthFieldAlias", supportsResizing ? dimensions.Item1.ToString(CultureInfo.InvariantCulture) : string.Empty); - // UpdateProperty(uploadFieldConfigNode, content, "heightFieldAlias", supportsResizing ? dimensions.Item2.ToString(CultureInfo.InvariantCulture) : string.Empty); + // only add dimensions to web images + UpdateProperty(uploadFieldConfigNode, content, "widthFieldAlias", isImageType ? dimensions.Item1.ToString(CultureInfo.InvariantCulture) : string.Empty); + UpdateProperty(uploadFieldConfigNode, content, "heightFieldAlias", isImageType ? dimensions.Item2.ToString(CultureInfo.InvariantCulture) : string.Empty); - // UpdateProperty(uploadFieldConfigNode, content, "lengthFieldAlias", size == default(long) ? string.Empty : size.ToString(CultureInfo.InvariantCulture)); - // UpdateProperty(uploadFieldConfigNode, content, "extensionFieldAlias", string.IsNullOrEmpty(extension) ? string.Empty : extension); - // } - // } - // } + UpdateProperty(uploadFieldConfigNode, content, "lengthFieldAlias", size == default(long) ? string.Empty : size.ToString(CultureInfo.InvariantCulture)); + UpdateProperty(uploadFieldConfigNode, content, "extensionFieldAlias", string.IsNullOrEmpty(extension) ? string.Empty : extension); + } + } + } - // private void UpdateProperty(XmlNode uploadFieldConfigNode, IContentBase content, string propertyAlias, object propertyValue) - // { - // XmlNode propertyNode = uploadFieldConfigNode.SelectSingleNode(propertyAlias); - // if (propertyNode != null && !String.IsNullOrEmpty(propertyNode.FirstChild.Value)) - // { - // if (content.Properties.Contains(propertyNode.FirstChild.Value) && content.Properties[propertyNode.FirstChild.Value] != null) - // { - // content.SetValue(propertyNode.FirstChild.Value, propertyValue); - // } - // } - // } + private void UpdateProperty(XmlNode uploadFieldConfigNode, IContentBase content, string propertyAlias, object propertyValue) + { + XmlNode propertyNode = uploadFieldConfigNode.SelectSingleNode(propertyAlias); + if (propertyNode != null && !String.IsNullOrEmpty(propertyNode.FirstChild.Value)) + { + if (content.Properties.Contains(propertyNode.FirstChild.Value) && content.Properties[propertyNode.FirstChild.Value] != null) + { + content.SetValue(propertyNode.FirstChild.Value, propertyValue); + } + } + } - // private Tuple GetDimensions(string path, IFileSystem fs) - // { - - // int fileWidth; - // int fileHeight; - // using (var stream = fs.OpenFile(path)) - // { - // using (var image = Image.FromStream(stream)) - // { - // fileWidth = image.Width; - // fileHeight = image.Height; - // } - // } + private Tuple GetDimensions(string path, IFileSystem fs) + { - // return new Tuple(fileWidth, fileHeight); - // } - //} + int fileWidth; + int fileHeight; + using (var stream = fs.OpenFile(path)) + { + using (var image = Image.FromStream(stream)) + { + fileWidth = image.Width; + fileHeight = image.Height; + } + } + + return new Tuple(fileWidth, fileHeight); + } + } } \ No newline at end of file