Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="contentType"></param>
        /// <param name="assetGroup"></param>
        /// <returns></returns>
        private static MergedAsset CreateMergedAssetWith(string contentType, WebAssetItemGroup assetGroup)
        {
            Func <string, string> getDirectory = path => path.Substring(2, path.LastIndexOf("/", StringComparison.Ordinal) - 2);
            Func <string, string> getFile      = path => path.Substring(path.LastIndexOf("/", StringComparison.Ordinal) + 1);

            MergedAsset asset = new MergedAsset
            {
                ContentType         = contentType,
                Version             = assetGroup.Version,
                Compress            = assetGroup.Compress,
                CacheDurationInDays = assetGroup.CacheDurationInDays
            };

            IEnumerable <string> directories = assetGroup.Items.Select(item => getDirectory(item.Source)).Distinct(StringComparer.OrdinalIgnoreCase);

            directories.Each(directory => asset.Directories.Add(new MergedAssetDirectory {
                Path = directory
            }));

            for (int i = 0; i < assetGroup.Items.Count; i++)
            {
                string item      = assetGroup.Items[i].Source;
                string directory = getDirectory(item);
                string file      = getFile(item);

                MergedAssetDirectory assetDirectory = asset.Directories.Single(d => d.Path.IsCaseInsensitiveEqual(directory));

                assetDirectory.Files.Add(new MergedAssetFile {
                    Order = i, Name = file
                });
            }

            return(asset);
        }
Example #2
0
            /// <summary>
            ///
            /// </summary>
            /// <param name="dictionary"></param>
            /// <param name="type"></param>
            /// <param name="serializer"></param>
            /// <returns></returns>
            public override object Deserialize(IDictionary <string, object> dictionary, Type type, JavaScriptSerializer serializer)
            {
                MergedAssetDirectory mergedAssetDirectory = new MergedAssetDirectory
                {
                    Path = serializer.ConvertToType <string>(dictionary["p"])
                };

                mergedAssetDirectory.Files.AddRange(serializer.ConvertToType <IList <MergedAssetFile> >(dictionary["f"]));

                return(mergedAssetDirectory);
            }
Example #3
0
            /// <summary>
            ///
            /// </summary>
            /// <param name="obj"></param>
            /// <param name="serializer"></param>
            /// <returns></returns>
            public override IDictionary <string, object> Serialize(object obj, JavaScriptSerializer serializer)
            {
                MergedAssetDirectory mergedAssetDirectory = (MergedAssetDirectory)obj;

                IDictionary <string, object> dictionary = new Dictionary <string, object>
                {
                    { "p", mergedAssetDirectory.Path },
                    { "f", mergedAssetDirectory.Files }
                };

                return(dictionary);
            }
            public override object Deserialize(IDictionary<string, object> dictionary, Type type, JavaScriptSerializer serializer)
            {
                MergedAssetDirectory mergedAssetDirectory = new MergedAssetDirectory
                                                                {
                                                                    Path = serializer.ConvertToType<string>(dictionary["p"])
                                                                };

                mergedAssetDirectory.Files.AddRange(serializer.ConvertToType<IList<MergedAssetFile>>(dictionary["f"]));

                return mergedAssetDirectory;
            }