/// <summary> /// Gets the common CSS. /// </summary> /// <param name="mode">The mode.</param> /// <param name="version">The version.</param> /// <returns>System.String.</returns> private string GetCommonCss(string mode, string version) { var versionString = !string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase) ? "?v=" + version : string.Empty; var files = new[] { "css/all.css" + versionString }; var tags = files.Select(s => string.Format("<link rel=\"stylesheet\" href=\"{0}\" async />", s)).ToArray(); return string.Join(string.Empty, tags); }
/// <summary> /// Gets all CSS. /// </summary> /// <returns>Task{Stream}.</returns> private async Task<Stream> GetAllCss(bool enableMinification) { var memoryStream = new MemoryStream(); var files = new[] { "css/site.css", "css/librarymenu.css", "css/librarybrowser.css", "thirdparty/paper-button-style.css" }; var builder = new StringBuilder(); foreach (var file in files) { var path = GetDashboardResourcePath(file); using (var fs = _fileSystem.GetFileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, true)) { using (var streamReader = new StreamReader(fs)) { var text = await streamReader.ReadToEndAsync().ConfigureAwait(false); builder.Append(text); builder.Append(Environment.NewLine); } } } var css = builder.ToString(); if (enableMinification) { try { var result = new KristensenCssMinifier().Minify(builder.ToString(), false, Encoding.UTF8); if (result.Errors.Count > 0) { _logger.Error("Error minifying css: " + result.Errors[0].Message); } else { css = result.MinifiedContent; } } catch (Exception ex) { _logger.ErrorException("Error minifying css", ex); } } var bytes = Encoding.UTF8.GetBytes(css); memoryStream.Write(bytes, 0, bytes.Length); memoryStream.Position = 0; return memoryStream; }
/// <summary> /// Sets the primary image path. /// </summary> /// <param name="item">The item.</param> /// <param name="parent">The parent.</param> /// <param name="metadataFolder">The metadata folder.</param> /// <param name="episodeFileName">Name of the episode file.</param> private void SetPrimaryImagePath(Episode item, Folder parent, string metadataFolder, string episodeFileName) { // Look for the image file in the metadata folder, and if found, set PrimaryImagePath var imageFiles = new[] { Path.Combine(metadataFolder, Path.ChangeExtension(episodeFileName, ".jpg")), Path.Combine(metadataFolder, Path.ChangeExtension(episodeFileName, ".png")) }; var file = parent.ResolveArgs.GetMetaFileByPath(imageFiles[0]) ?? parent.ResolveArgs.GetMetaFileByPath(imageFiles[1]); if (file != null) { item.PrimaryImagePath = file.FullName; } }