Telerik.Web.Mvc.WebAssetRegistry.CreateMergedAssetWith C# (CSharp) Method

CreateMergedAssetWith() private static method

private static CreateMergedAssetWith ( string contentType, WebAssetItemGroup assetGroup ) : MergedAsset
contentType string
assetGroup WebAssetItemGroup
return MergedAsset
        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;
        }