void LoadFile() { string filename = Utils.GetFile(); if (filename.Length < 1) { return; } FileIsLoading = true; try { worker = new BackgroundWorker(); worker.WorkerReportsProgress = true; DataRepository repository = new DataRepository(filename, DataSourceType.CSV); repository.FileOpening += new DataRepository.FileProgressEventHandler(repository_UpdateProgress); repository.FileLoading += new DataRepository.FileProgressEventHandler(repository_UpdateProgress); repository.FileLoaded += new DataRepository.FileProgressEventHandler(repository_UpdateProgress); worker.DoWork += delegate(object sender, DoWorkEventArgs args) { data = repository.GetAllData(); //reset composite flags since we're loading a new dataset // WDCompositeExists = false; //WSCompositeExists = false; ColumnCollection = new SessionColumnCollection(data); ObservableCollection <ISessionColumn> colClxn = new MultiThreadObservableCollection <ISessionColumn>(); foreach (SessionColumn sc in _sessionColumnCollection.Columns) { colClxn.Add(sc); } LiveCollection = colClxn; DataSetStartDate = ColumnCollection.DataSetStart; DataSetEndDate = ColumnCollection.DataSetEnd; FileIsLoading = false; }; worker.RunWorkerAsync(); } catch (Exception e) { MessageBox.Show(e.Message); } }
void RunProcessing() { BackgroundWorker worker = new BackgroundWorker(); WindDirectionComposite wdcomposite = new WindDirectionComposite(_sessionColumnCollection, data); WindSpeedComposite wscomposite = new WindSpeedComposite(_sessionColumnCollection, data); //SoundPlayer sp = new SoundPlayer("Careless_whisper_(Wham).wav"); try { worker.RunWorkerCompleted += delegate(object sender, RunWorkerCompletedEventArgs e) { MessageBox.Show("Done Processing!"); //sp.Stop(); }; worker.DoWork += delegate(object s, DoWorkEventArgs args) { try { IsProcessing = true; //sp.Play(); if (!DoNotRunComps) { wdcomposite.NewCompositeColumnAdded += new WindDirectionComposite.ProgressEventHandler(repository_UpdateProgress); if (wdcomposite.CalculateComposites()) { LiveCollection = new MultiThreadObservableCollection <ISessionColumn>(_sessionColumnCollection.Columns); } wdcomposite.CompletedWindDirectionCompositeValues += new WindDirectionComposite.ProgressEventHandler(repository_UpdateProgress); wscomposite.DeterminingWindSpeedCompositeValues += new WindSpeedComposite.ProgressEventHandler(repository_UpdateProgress); if (wscomposite.CalculateComposites()) { LiveCollection = new MultiThreadObservableCollection <ISessionColumn>(_sessionColumnCollection.Columns); } wscomposite.CompletedWindSpeedCompositeValues += new WindSpeedComposite.ProgressEventHandler(repository_UpdateProgress); } else { //set all the Ws sensors to comps foreach (SessionColumn sc in _sessionColumnCollection.Columns) { if (sc.ColumnType == SessionColumnType.WSAvg) { sc.IsComposite = true; } if (sc.ColumnType == SessionColumnType.WDAvg) { sc.ColName = "WDAvgComposite"; sc.IsComposite = true; } } } MonthbyHourShear Shear = new MonthbyHourShear(_sessionColumnCollection, data.AsDataView()); foreach (double height in _heightToShearToList) { Shear.Xaxis = new MonthAxis(); Shear.Yaxis = new HourAxis(); Shear.AddingShearValues += new MonthbyHourShear.ProgressEventHandler(repository_UpdateProgress); Shear.CalculateWindSpeed(height, out _ogrid); LiveCollection = new MultiThreadObservableCollection <ISessionColumn>(_sessionColumnCollection.Columns); } Shear.AddedShearValues += new MonthbyHourShear.ProgressEventHandler(repository_UpdateProgress); IsProcessing = false; } finally { IsProcessing = false; } }; worker.RunWorkerAsync(); } catch (Exception e) { throw e; } }