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;
        }
Esempio n. 2
0
        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);
            }
        }