/// <summary> /// Convert the saved json into a strongly typed model /// </summary> /// <param name="publishedPropertyType"></param> /// <param name="source">The saved json from the Checkbox table property editor</param> /// <param name="preview"></param> /// <returns>A <see cref="CheckboxTable"/> object</returns> public override object ConvertSourceToObject(PublishedPropertyType publishedPropertyType, object source, bool preview) { var checkboxTable = new Models.CheckboxTable(); /* * { * columns: ['Bronze', 'Silver', 'Gold'], * rows: ['Feature 1', 'Feature 2'], * cells: [ * [true, false, false], * [false, false, false] * ] * } */ var json = JObject.Parse((string)source); checkboxTable.ColumnLabels = json["columns"].ToObject <string[]>(); List <CheckboxTableRow> checkboxTableRows = new List <CheckboxTableRow>(); var rowCounter = 0; foreach (var row in json["rows"]) { checkboxTableRows.Add( new CheckboxTableRow() { RowLabel = row.ToString(), Cells = json["cells"][rowCounter].ToObject <bool[]>() }); rowCounter++; } checkboxTable.Rows = checkboxTableRows.ToArray(); return(checkboxTable); }
/// <summary> /// Convert the saved json into a strongly typed model /// </summary> /// <param name="publishedPropertyType"></param> /// <param name="source">The saved json from the Checkbox table property editor</param> /// <param name="preview"></param> /// <returns>A <see cref="CheckboxTable"/> object</returns> public override object ConvertSourceToObject(PublishedPropertyType publishedPropertyType, object source, bool preview) { var checkboxTable = new Models.CheckboxTable(); var rows = JArray.Parse((string)source); checkboxTable.ColumnLabels = rows.First().Skip(1).Select(x => x.ToString()).ToArray(); List <CheckboxTableRow> checkboxTableRows = new List <CheckboxTableRow>(); foreach (var row in rows.Skip(1)) { checkboxTableRows.Add(new CheckboxTableRow() { RowLabel = row.First().ToString(), Cells = row.Skip(1).Select(x => (bool)x).ToArray() }); } checkboxTable.Rows = checkboxTableRows.ToArray(); return(checkboxTable); }