Exemple #1
0
        private void ShowExchangeNotice(PSEDocument pseDocument)
        {
            if (pseDocument != null)
            {
                ShowCloseProgressDialogDelegate showMarketSummaryTab = () =>
                {
                    Messenger.Default.Send(
                        new ShowMarketSummaryMessage {
                        TradeDate = pseDocument.TradeDate
                    });

                    Messenger.Default.Send(
                        new ShowExchangeNoticeMessage {
                        NoticeText = pseDocument.ExchangeNotice
                    }
                        );
                };
                Application.Current.Dispatcher.Invoke(showMarketSummaryTab, null);
            }
        }
Exemple #2
0
        private void OnRcvConvertFromFileDataParamMessage(MessageBase msg)
        {
            if (msg is ConvertFromFileDataParamMessage)
            {
                var dataParam = msg as ConvertFromFileDataParamMessage;
                if (dataParam.FileList.Count() == 0)
                {
                    Messenger.Default.Send(new ShowAppMessage {
                        MessageTitle = "Information", AppMessage = "Nothing to convert."
                    });
                    return;
                }

                var t = new Thread(ConvertFromFileHelper.ConvertFromFiles);
                t.IsBackground = false;

                var param = new ConvertFromFilesParam();
                param.FileList       = dataParam.FileList;
                param.OutputSettings = OutputSettings;
                param.threadObject   = t;

                IsBusy = true;
                ShowCloseProgressDialogDelegate showProgressDelegate = () =>
                {
                    Messenger.Default.Send(new CloseWindowMessage());
                    Messenger.Default.Send(new ShowProgressDialogMessage());
                };

                ShowCloseProgressDialogDelegate closeProgressDelegate = () =>
                {
                    IsBusy = false;
                    Messenger.Default.Send <ShowAppMessage, ProgressDialogViewModel>(
                        new ShowAppMessage {
                        MessageTitle = "Done!", AppMessage = "Done."
                    });
                };

                param.OnStartProcess = () => { Application.Current.Dispatcher.Invoke(showProgressDelegate, null); };

                param.BeforeConvertCallback = reportFilename =>
                {
                    SendAppMessageDelegate appMessage = () =>
                    {
                        Messenger.Default.Send <ShowAppMessage, ProgressDialogViewModel>(
                            new ShowAppMessage {
                            MessageTitle = "Converting " + Path.GetFileName(reportFilename) + "..."
                        }
                            );
                    };
                    Application.Current.Dispatcher.Invoke(appMessage, null);
                };

                param.ProgressCallback = (reportFilename, pseDocument) =>
                {
                    Application.Current.Dispatcher.Invoke(() =>
                    {
                        var dataService = ServiceLocator.Current.GetInstance <IPSEGetDataService>(); //new PSEGetDataService();
                        dataService.SaveTradeData(pseDocument);

                        Messenger.Default.Send <ShowAppMessage, ProgressDialogViewModel>(
                            new ShowAppMessage
                        {
                            MessageTitle = "Done.",
                            AppMessage   = "Converted " + Path.GetFileName(reportFilename)
                        }
                            );
                    });
                };

                param.ExceptionCallback = e =>
                {
                    //errorList.Add(e);
                    //System.Windows.Forms.MessageBox.Show(e.Message);
                    if (e is SQLiteException)
                    {
                        MessageBox.Show("The conversion was successful but PSEGet was unable to update the database.");
                    }
                    else
                    {
                        MessageBox.Show(e.Message);
                    }
                    IsBusy = false;
                    Application.Current.Dispatcher.Invoke(closeProgressDelegate, null);
                };
                param.CompletedCallback = pseDocument =>
                {
                    Application.Current.Dispatcher.Invoke(closeProgressDelegate, null);
                    ShowExchangeNotice(pseDocument);
                };


                t.Start(param);
            }
        }