/// <summary> /// Converts a <see cref="Stream"/> to a valid payload string /// </summary> /// <param name="stream">The stream to convert.</param> /// <returns>The payload</returns> public static string StreamToPlayloadData(Stream stream) { using (var memoryStream = new MemoryStream()) { stream.CopyTo(memoryStream); memoryStream.Seek(0L, SeekOrigin.Begin); var byteArray = memoryStream.ToArray(); return(LayoutManagementUtilities.ConvertLayoutStreamToString(byteArray)); } }
/// <summary> /// Reads a <see cref="WindowProfile"/> file and converts it to a valid payload string /// </summary> /// <param name="filePath">The file path.</param> /// <returns>The payload</returns> public static string FileToPayloadData(string filePath) { using (var memoryStream = new MemoryStream()) { using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { fs.CopyTo(memoryStream); } memoryStream.Seek(0L, SeekOrigin.Begin); var byteArray = memoryStream.ToArray(); return(LayoutManagementUtilities.ConvertLayoutStreamToString(byteArray)); } }
/// <summary> /// Saves a payload string to a file. An existing file will be overwritten. /// </summary> /// <param name="filePath">The file path.</param> /// <param name="payload">The payload.</param> /// <param name="decompress">if set to <see langword="true"/> the payload data will be decompressed first. Default value is <see langword="true"/></param> public static void PayloadDataToFile(string filePath, string payload, bool decompress = true) { var data = payload; if (decompress) { data = Encoding.UTF8.GetString(GZip.Decompress(Convert.FromBase64String(payload))); } using (var stream = LayoutManagementUtilities.ConvertLayoutPayloadToStream(data)) { using (var fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None)) { stream.CopyTo(fileStream); } } }
public void Populate(Command command, List <CommandDefinitionBase> commands) { if (LayoutManagementService.Instance == null) { return; } var layoutPairs = LayoutManagementUtilities.EnumerateLayoutKeyInfo(_layoutStore); var layouts = new ObservableCollection <LayoutItemViewModel>(layoutPairs .Select(kvp => new LayoutItemViewModel(kvp.Key, kvp.Value)).OrderBy(lvm => lvm.Position) .ThenBy(lvm => lvm.Name)); if (layouts.Count == 0) { commands.Add(new ShowLayoutCommandDefinition(WindowManagement_Resources.NoSavedLayouts)); return; } commands.AddRange(layouts.Select((t, i) => CreateCommand(i + 1, t.Name))); }