GSF.Web.Hosting.WebServer.OpenResourceAsync C# (CSharp) Method

OpenResourceAsync() private method

private OpenResourceAsync ( string fileName, bool embeddedResource, CancellationToken cancellationToken ) : Task
fileName string
embeddedResource bool
cancellationToken System.Threading.CancellationToken
return Task
        private async Task<Stream> OpenResourceAsync(string fileName, bool embeddedResource, CancellationToken cancellationToken)
        {
            Stream stream = embeddedResource ? WebExtensions.OpenEmbeddedResourceStream(fileName) : File.OpenRead(fileName);

            if (!(m_releaseMode || UseMinifyInDebug) || !(MinifyJavascript || MinifyStyleSheets))
                return stream;

            string extension = FilePath.GetExtension(fileName).Trim().ToLowerInvariant();

            if (string.IsNullOrWhiteSpace(extension))
                return stream;

            Minifier minifier = new Minifier();
            Stream minimizedStream = null;

            switch (extension)
            {
                case ".js":
                    if (MinifyJavascript)
                    {
                        await Task.Run(async () =>
                        {
                            using (StreamReader reader = new StreamReader(stream))
                                minimizedStream = await minifier.MinifyJavaScript(await reader.ReadToEndAsync()).ToStreamAsync();
                        }, cancellationToken);                        
                    }
                    break;
                case ".css":
                    if (MinifyStyleSheets)
                    {
                        await Task.Run(async () =>
                        {
                            using (StreamReader reader = new StreamReader(stream))
                                minimizedStream = await minifier.MinifyStyleSheet(await reader.ReadToEndAsync()).ToStreamAsync();
                        }, cancellationToken);                        
                    }
                    break;
            }

            return minimizedStream ?? stream;
        }