コード例 #1
0
 /// <summary>
 /// Deserializes the specified string data into the configuration view
 /// model information
 /// </summary>
 /// <param name="data">String data to deserialize</param>
 /// <param name="vm">Deserialized view model</param>
 /// <returns>
 /// True, if deserialization is successful; otherwise, false
 /// </returns>
 /// <remarks>
 /// If deserialization fails, the method retrieves the ZX Spectrum 48K PAL
 /// edition configuration data
 /// </remarks>
 public static bool Deserialize(string data, out SpectrumConfEditorViewModel vm)
 {
     try
     {
         var configData = JsonConvert.DeserializeObject <ProjectConfigData>(data);
         vm = new SpectrumConfEditorViewModel
         {
             ModelName         = configData.Model,
             EditionName       = configData.Edition,
             ConfigurationData = SpectrumModels.StockModels[configData.Model]
                                 .Editions[configData.Edition].Clone()
         };
         return(true);
     }
     catch
     {
         // --- In case of issues, we retrieve the ZX Spectrum 48 PAL model
         // --- as the default one.
         vm = new SpectrumConfEditorViewModel
         {
             ModelName         = SpectrumModels.ZX_SPECTRUM_48,
             EditionName       = SpectrumModels.PAL,
             ConfigurationData = SpectrumModels.ZxSpectrum48Pal
         };
         return(false);
     }
 }
コード例 #2
0
        /// <summary>
        /// Serializes the configuration data of the specified view model
        /// </summary>
        /// <param name="vm">Spectrum configuration view model</param>
        /// <returns></returns>
        public static string Serialize(SpectrumConfEditorViewModel vm)
        {
            var data = new ProjectConfigData(vm.ModelName, vm.EditionName);

            return(JsonConvert.SerializeObject(data, Formatting.Indented));
        }