Esempio n. 1
0
        static void Main(string[] args)
        {
            Mapper.Initialize(cfg =>
            {
                cfg.CreateMap <CsvDataSet, Log>().ReverseMap();
            });

            var dataPath     = @"C:\Users\jb\Google Drive\CobbData";
            var csvFiles     = Directory.GetFileSystemEntries(dataPath, "*.csv");
            var recordsToAdd = new List <LogInfo>();

            foreach (var file in csvFiles)
            {
                LogInfo       info          = new LogInfo();
                List <string> cleanedFields = new List <string>();
                using (var reader = new StreamReader(file))
                {
                    var firstLine = reader.ReadLine();
                    var fields    = CsvReader.ParseFields(firstLine);
                    var lastField = fields.Last();
                    info = new LogInfo(lastField);
                    fields.Remove(lastField);

                    foreach (var field in fields)
                    {
                        var cleanedField = Regex.Replace(field, @"\s\([^)]*\)", string.Empty);
                        cleanedField = Regex.Replace(cleanedField, @"[^a-zA-Z]", string.Empty);
                        if (!cleanedFields.Any(f => f == cleanedField))
                        {
                            cleanedFields.Add(cleanedField);
                        }
                    }
                    cleanedFields.Add("Fake");
                }
                var rows = CsvReader.ParseLines(File.ReadAllText(file));

                var header = rows.First();
                rows.Remove(header);
                var cleanedHeader = string.Join(",", cleanedFields);
                rows.Insert(0, cleanedHeader);

                var data = ServiceStack.Text.CsvReader <CsvDataSet> .Read(rows);

                foreach (var row in data)
                {
                    var stuff = Mapper.Map <CsvDataSet, Log>(row);
                    info.Logs.Add(stuff);
                }
                recordsToAdd.Add(info);
            }
            using (var db = new CobbDbContext())
            {
                db.LogInfos.AddRange(recordsToAdd);
                db.SaveChanges();
            }

            Console.WriteLine("Done");
            Console.Read();
        }
Esempio n. 2
0
 public LogInfosController(CobbDbContext context)
 {
     _context = context;
 }