예제 #1
0
        public static void ImportMovies(string path = DefaultMoviePath)
        {
            if (!string.IsNullOrEmpty(path))
            {
                if (File.Exists(path))
                {
                    // On cleare tout avant d'importer
                    var movieDb = new MovieDatabaseLayer();
                    movieDb.CleanTable();

                    var movies = new List <Movie>();
                    using (var reader = File.OpenText(path))
                    {
                        string line;

                        // on choppe tous les films un par un on stocke dans une liste temporaire
                        while ((line = reader.ReadLine()) != null)
                        {
                            var splits = line.Split(',');
                            var movie  = new Movie
                            {
                                Id    = int.Parse(splits[0]),
                                Title = splits[2]
                            };

                            int date;
                            // y'a des Date NULL des fois, du coup on "try parse"
                            if (int.TryParse(splits[1], out date))
                            {
                                movie.Date = date;
                            }

                            movies.Add(movie);
                        }
                    }

                    // on save tout le bloc
                    movieDb.Save(movies);
                }
                else
                {
                    Logger.Error(string.Format("File {0} does not exist", path));
                }
            }
            else
            {
                Logger.Error(string.Format("Je crois, c'est pas bon", path));
            }
        }
예제 #2
0
        public override void Import()
        {
            if (!string.IsNullOrEmpty(Source))
            {
                if (File.Exists(Source))
                {
                    // On compte le nombre de lignes pour pouvoir faire un ReportProgress
                    double lineCount = File.ReadLines(Source).Count();

                    // Pour prendre en compte la sauvegarde dans le progress... hum
                    lineCount += lineCount * 0.2;

                    // On cleare tout avant d'importer
                    var movieDb = new MovieDatabaseLayer(Target);
                    movieDb.CleanTable();

                    //var counter = 0.0;
                    double progress = 0;

                    var movies = new List <Movie>();
                    using (var reader = File.OpenText(Source))
                    {
                        string line;

                        Report(progress, "Reading file");

                        // on choppe tous les films un par un on stocke dans une liste temporaire
                        while ((line = reader.ReadLine()) != null)
                        {
                            var splits = line.Split(',');
                            var movie  = new Movie
                            {
                                Id    = int.Parse(splits[0]),
                                Title = splits[2]
                            };

                            int date;
                            // y'a des Date NULL des fois, du coup on "try parse"
                            if (int.TryParse(splits[1], out date))
                            {
                                movie.Date = date;
                            }

                            movies.Add(movie);

                            // Progress
//							counter++;
//							progress = counter/lineCount * 100;
//							Report(progress, "Reading file");

                            if (CancelationPending)
                            {
                                Report(0, "Importation cancelled");

                                return;
                            }
                        }
                    }

                    Report(50, "Saving movies");

                    // on save tout le bloc
                    movieDb.Save(movies);

                    Report(100, "Import finished !");
                }
                else
                {
                    throw new ArgumentException(string.Format("File {0} does not exist", Source));
                }
            }
            else
            {
                throw new ArgumentNullException("Source can not be null or empty");
            }
        }