Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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;
            }
        }