コード例 #1
0
        /// <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));
            }
        }
コード例 #2
0
 /// <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));
     }
 }
コード例 #3
0
        /// <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);
                }
            }
        }
コード例 #4
0
        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)));
        }