private void ImportChangesButton_Click(object sender, RoutedEventArgs e) { try { ImportResultHelper.Clear(); OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "CSV Files (*.csv)|*.csv"; openFileDialog.ShowDialog(); var changes = ProcessCSV(openFileDialog.FileName); changesWithoutDublicate = changes.Distinct().ToList(); foreach (var schedule in changesWithoutDublicate) { if (schedule == null || schedule.Result != "OK") { continue; } Schedules schedules = new Schedules() { AircraftID = schedule.AircraftID, Confirmed = true, Date = schedule.Date, Time = schedule.Time, EconomyPrice = schedule.BasePrice, RouteID = DataHelper.GetContext().Routes.Where(n => n.Airports.IATACode == schedule.From && n.Airports1.IATACode == schedule.To).Select(n => n.ID).First(), FlightNumber = schedule.FlightNumber.ToString(), }; if (DataHelper.GetContext().Schedules.ToList().Contains(schedules)) { ImportResultHelper.Dublicate++; continue; } if (schedule.Function == "ADD") { ImportResultHelper.Successful++; DataHelper.GetContext().Schedules.Add(schedules); } } DataHelper.GetContext().SaveChanges(); } catch (Exception ex) { MessageBox.Show(ex.Message); } SuccessfulLabel.Content = ImportResultHelper.Successful; DublicateLabel.Content = ImportResultHelper.Dublicate; RecordLabel.Content = ImportResultHelper.MissFields; }
private IEnumerable <ResultMessageViewModel> PersistESDATData(ESDATDataToImport esdatDataToImport, IDataImporter importer) { var extractedResults = importer.Extract <ESDATModel>(esdatDataToImport); if (!extractedResults.IsExtractedSuccess) { var failResults = from parsingResult in ImportResultHelper.FilterWarningAndErrorResult(extractedResults.AllParsingResults) select new ResultMessageViewModel ( parsingResult.Level.ToString(), parsingResult.Message ); return(failResults); } else { var esdatModel = extractedResults.ExtractedEntities.First(); var allResults = (from parsingResult in extractedResults.AllParsingResults select new ResultMessageViewModel(parsingResult.Level.ToString(), parsingResult.Message)).ToList(); var duplicateChecker = new ODM2DuplicateChecker(_dbContext); var convertResult = new List <IResult>(); var sampleCollectionFactory = new ESDATSampleCollectionMapperFactory(duplicateChecker, _wqDefaultValueProvider, wayToHandleNewData, convertResult); var chemistryFactory = new ESDATChemistryMapperFactory(duplicateChecker, _wqDefaultValueProvider, wayToHandleNewData, convertResult); var mapper = new SampleCollectionActionMapper(duplicateChecker, sampleCollectionFactory, _wqDefaultValueProvider, chemistryFactory, wayToHandleNewData, convertResult); var converter = new ESDATConverter(mapper); var convertResults = converter.Convert(esdatModel); var convertResultViewModels = from converResult in convertResults select new ResultMessageViewModel(converResult.Level.ToString(), converResult.Message); allResults.AddRange(convertResultViewModels.ToList()); var convertParsingResult = convertResults.Where(x => x is IParsingResult).FirstOrDefault(); if (convertParsingResult == null) { var failResult = new ResultMessageViewModel(ResultMessageViewModel.RESULT_LEVEL_ERROR, "System is not able to find the converted value from the converted results."); allResults.Add(failResult); } else { var action = (Action)((IParsingResult)convertParsingResult).Value; _dbContext.Add <Hatfield.EnviroData.Core.Action>(action); _dbContext.SaveChanges(); allResults.Add(new ResultMessageViewModel ( ResultMessageViewModel.RESULT_LEVEL_INFO, "Import success" )); } return(allResults); } }