public List <IResearchSet> LoadResearchRects(String csv) { var csvModel = CsvHelper.FromCsv(csv); var result = new List <IResearchSet>(); for (int i = 0; i < csvModel.Count; i++) { var radiusStr = csvModel["Radius", i]; if (!String.IsNullOrWhiteSpace(radiusStr)) { result.Add( new CentralRadialResearchSet() { AngleDegrees = Double.Parse(csvModel["AngleDegrees", i], CultureInfo.InvariantCulture), Radius = Double.Parse(radiusStr, CultureInfo.InvariantCulture), StepDegrees = Double.Parse(csvModel["StepDegrees", i], CultureInfo.InvariantCulture), } ); continue; } var item = new ResearchRect(new Rect3D(Double.Parse(csvModel["Rect.X", i], CultureInfo.InvariantCulture), Double.Parse(csvModel["Rect.Y", i], CultureInfo.InvariantCulture), Double.Parse(csvModel["Rect.Z", i], CultureInfo.InvariantCulture), Double.Parse(csvModel["Size.X", i], CultureInfo.InvariantCulture), Double.Parse(csvModel["Size.Y", i], CultureInfo.InvariantCulture), Double.Parse(csvModel["Size.Z", i], CultureInfo.InvariantCulture)), new Size3D(Double.Parse(csvModel["Step.X", i], CultureInfo.InvariantCulture), Double.Parse(csvModel["Step.Y", i], CultureInfo.InvariantCulture), Double.Parse(csvModel["Step.Z", i], CultureInfo.InvariantCulture))); result.Add(item); } return(result); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var jsonObject = JObject.Load(reader); var researchSet = default(IResearchSet); if (jsonObject.GetValue("Rect") != null) { researchSet = new ResearchRect(); } else if (jsonObject.GetValue("Radius") != null) { researchSet = new CentralRadialResearchSet(); } serializer.Populate(jsonObject.CreateReader(), researchSet); return(researchSet); }