private bool mergeList(ref Dictionary <string, List <CSVLog> > raw, ref List <CSVLog> merged) { if (raw.Count == 0) { return(false); } merged.Clear(); foreach (var entry in raw) { if (entry.Value.Count == 1) { merged.Add(entry.Value[0]); } else { CSVLog eFirst = entry.Value[0]; for (int i = 1; i < entry.Value.Count; i++) { eFirst.mergeData(entry.Value[i]); } merged.Add(eFirst); } } return(true); }
private void loadFiles(string dialogFilter, ref Dictionary <string, List <CSVLog> > d) { d.Clear(); OpenFileDialog ff = new OpenFileDialog(); ff.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); //"C:\\"; ff.Filter = dialogFilter; ff.Multiselect = true; ff.FilterIndex = 1; ff.RestoreDirectory = false; if (ff.ShowDialog() == System.Windows.Forms.DialogResult.OK) { try { foreach (String file in ff.FileNames) { CSVLog rr = new CSVLog(); rr.SetFilePath(file); if (!rr.Parse()) { System.Windows.MessageBox.Show("Failed to parse file " + file); continue; } if (!d.ContainsKey(rr.objectName)) { d.Add(rr.objectName, new List <CSVLog> { rr }); } else { d[rr.objectName].Add(rr); d[rr.objectName].OrderBy(x => x.fileDateTime); } } } catch (Exception err) { //Inform the user if we can't read the file System.Windows.MessageBox.Show(err.Message); } } }