public void zipToExerciceList(string file, SuiviVM list) { string zipPath = file; string extractPath = Environment.GetEnvironmentVariable("LocalAppData") + "\\MyOrtho\\" + DateTime.Now.ToString("yyyyMMddHHmmss"); if (!String.IsNullOrEmpty(zipPath)) { ZipFile.ExtractToDirectory(zipPath, extractPath); populateResultsList(extractPath, list); } }
private void populateResultsList(string path, SuiviVM activityList) { XDocument xml = XDocument.Load(path + "\\resultats.xml"); var activities = xml.Descendants("Activity"); foreach (XElement activity in activities) { ExerciceVM newExerciceResult = new ExerciceVM { Name = activity.Descendants("Name").First().Value, Example_wav_path = path + "\\" + activity.Descendants("Exercice_wav_file_name").First().Value, Result_wav_path = path + "\\" + activity.Descendants("Result_wav_filename").First().Value, /*PitchMin = Convert.ToInt32(activity.Descendants("Pitch_min").First().Value), * PitchMax = Convert.ToInt32(activity.Descendants("Pitch_max").First().Value), * IntensityThreshold = Convert.ToInt32(activity.Descendants("Intensity_threshold").First().Value), * F0_exactEvaluated = Convert.ToBoolean(activity.Descendants("F0_exactEvaluated").First().Value), * F0_stableEvaluated = Convert.ToBoolean(activity.Descendants("F0_stableEvaluated").First().Value), * Intensite_stableEvaluated = Convert.ToBoolean(activity.Descendants("Intensite_stableEvaluated").First().Value), * Courbe_f0_exacteEvaluated = Convert.ToBoolean(activity.Descendants("Courbe_f0_exacteEvaluated").First().Value), * Duree_exacteEvaluated = Convert.ToBoolean(activity.Descendants("Duree_exacteEvaluated").First().Value), * JitterEvaluated = Convert.ToBoolean(activity.Descendants("JitterEvaluated").First().Value),*/ F0_exact = Decimal.Parse(activity.Descendants("F0_exact").First().Value, System.Globalization.NumberStyles.Float), F0_stable = Decimal.Parse(activity.Descendants("F0_stable").First().Value, System.Globalization.NumberStyles.Float), Intensite_stable = Decimal.Parse(activity.Descendants("Intensite_stable").First().Value, System.Globalization.NumberStyles.Float), Courbe_f0_exacte = Decimal.Parse(activity.Descendants("Courbe_f0_exacte").First().Value, System.Globalization.NumberStyles.Float), Duree_exacte = Decimal.Parse(activity.Descendants("Duree_exacte").First().Value, System.Globalization.NumberStyles.Float), Jitter = Decimal.Parse(activity.Descendants("Jitter").First().Value, System.Globalization.NumberStyles.Float) }; ICollection <DataLineItem> points = activity.Descendants("PointExercice").Select(x => new DataLineItem { Time = double.Parse(x.Descendants("Time").First().Value), Intensity = double.Parse(x.Descendants("Intensity").First().Value), Pitch = double.Parse(x.Descendants("Pitch").First().Value) }).ToList(); newExerciceResult.Exercice = points; ICollection <DataLineItem> resultsPoints = activity.Descendants("PointResultat").Select(x => new DataLineItem { Time = double.Parse(x.Descendants("Time").First().Value), Intensity = double.Parse(x.Descendants("Intensity").First().Value), Pitch = double.Parse(x.Descendants("Pitch").First().Value) }).ToList(); newExerciceResult.Results = resultsPoints; activityList.Add(newExerciceResult); } }