示例#1
0
        public int ReadFileIntoDatabase()
        {
            //File path.
            var            path        = $"{ env.WebRootPath }\\db.csv";
            List <Weather> weatherList = new List <Weather>();
            int            counter     = 0;

            counter = ParseCSV(path, weatherList, counter);

            //Add & Save changes to database.
            Task t1 = context.AddRangeAsync(weatherList);

            t1.Wait();
            context.SaveChanges();

            //Create Daily views for every date.
            var uniqueDates = weatherList.GroupBy(x => x.Date.Date).ToHashSet();
            List <WeatherView> weatherViewList = new List <WeatherView>();

            CreateDailyView(weatherList, uniqueDates, weatherViewList);

            //Add & Save changes to database.
            Task t2 = context.AddRangeAsync(weatherViewList);

            t2.Wait();
            context.SaveChanges();

            weatherViewList.Clear();
            weatherList.Clear();

            query.SetSummerSeason();
            query.SetAutumnSeason();
            query.SetWinterSeason();
            context.SaveChanges();

            return(counter);
        }