예제 #1
0
        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);
        }
예제 #2
0
        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);
                }
            }
        }