/// <summary> /// Deserializes JSON string to template view model /// </summary> /// <param name="jsonString">JSON string to process</param> /// <returns>Template view model</returns> public static TemplateViewModel JsonToTemplate(string jsonString) { StringBuilder sb = new StringBuilder(jsonString); PreprocessJson(sb); jsonString = sb.ToString(); OmrTemplate template; using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString))) { DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(OmrTemplate)); template = ser.ReadObject(ms) as OmrTemplate; } TemplateViewModel templateViewModel = TemplateConverter.ConvertModelToViewModel(template); return(templateViewModel); }
/// <summary> /// Serializes template into JSON string /// </summary> /// <param name="template">Template view model</param> /// <param name="isLocalSave">Indicates whether template is saved locally</param> /// <returns>JSON string</returns> public static string TemplateToJson(TemplateViewModel template, bool isLocalSave) { OmrTemplate templateModel = TemplateConverter.ConvertViewModelToModel(template, isLocalSave); string res; using (MemoryStream jsonStream = new MemoryStream()) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(OmrTemplate)); serializer.WriteObject(jsonStream, templateModel); byte[] json = jsonStream.ToArray(); res = Encoding.UTF8.GetString(json, 0, json.Length); StringBuilder sb = new StringBuilder(res); PostprocessJson(sb); res = FormatJson(sb.ToString()); } return(res); }