public List <MonicaSerie> GetXAxises(MonicaBaseData monicaBaseData) { var monicaSeries = new List <MonicaSerie>(); var monicaConstField = new MonicaConstFields(); foreach (var monicaSerie in monicaBaseData.MonicaSeries) { if (monicaSerie.Values.Count == 0) { continue; } if (monicaConstField.XAxiesNames.Contains(monicaSerie.SerieTitle.ToLower())) { monicaSeries.Add(monicaSerie); } else { double tempValue; bool isNumeric = double.TryParse(monicaSerie.Values[0], out tempValue); if (!isNumeric) { monicaSeries.Add(monicaSerie); } } } return(monicaSeries); }
public List <MonicaBaseData> Map(string data) { int dataCounter = 0; var lstMonicaBaseData = new List <MonicaBaseData>(); JObject jObject = JObject.Parse(data); foreach (var mData in jObject["data"]) { var monicaBaseData = new MonicaBaseData(dataCounter++); string OrigSpec = (string)mData[MonicaConstFields.OrigSpec]; OrigSpec = OrigSpec.RemoveQuotation(); monicaBaseData.OrigSpec = OrigSpec; int outputIdIndex = 0; foreach (var outId in mData[MonicaConstFields.OutputIds]) // like Daily, Yearly, Crop { var monicaSerie = new MonicaSerie(); var outIdName = (string)outId[MonicaConstFields.Name]; var results = (JArray)mData[MonicaConstFields.Results][outputIdIndex]; if (results.Count > 0) { var firstResult = results[0]; if (firstResult is JArray) // the result is series of arrays { for (int i = 0; i < ((JArray)firstResult).Count; i++) { monicaSerie = new MonicaSerie(); monicaSerie.SerieTitle = outIdName + "-" + (i + 1); foreach (var result in results) { monicaSerie.Values.Add(result[i].ToString().Replace(",", ".")); // replace , by . in numbers for sub arrays } monicaBaseData.MonicaSeries.Add(monicaSerie); } } else { monicaSerie.SerieTitle = outIdName; foreach (var result in results) { monicaSerie.Values.Add(result.ToString().Replace(",", ".")); } monicaBaseData.MonicaSeries.Add(monicaSerie); } } outputIdIndex++; } lstMonicaBaseData.Add(monicaBaseData); } return(lstMonicaBaseData); //return data for selected chart }