コード例 #1
0
        private async void View_Zobraz(object sender, EventArgs e)
        {
            DateTime pocatek = View.Pocatek;
            DateTime konec   = View.Konec;

            try
            {
                if (Form.ActiveForm != null)
                {
                    Form.ActiveForm.Cursor = Cursors.AppStarting;
                }
                await zobrazHandler.HandleAsync(new ZobrazDataCommand(pocatek, konec));
            }
            catch (ArgumentException ex)
            {
                errorDisplayService.Show(ex.Message);
                return;
            }
            catch (InvalidOperationException ex) when(ex.Message.Contains("nejsou k dispozici žádná data"))
            {
                errorDisplayService.Show(ex.Message);
                return;
            }
            catch (MissmatchedTemplateException ex)
            {
                errorDisplayService.Show(ex.Message);
                return;
            }
            finally
            {
                Form.ActiveForm.Cursor = Cursors.Arrow;
            }
        }
コード例 #2
0
 /// <summary>
 /// Uloží vybraná data do ASCII souboru.
 /// </summary>
 /// <exception cref="ArgumentException">Vyvolán ve chvíli, kdy jsou nýzvy sloupců <see cref="DataToASCIICommand.SloupceToASCII"/> neplatné,
 /// tedy se neshodují s daným <see cref="Session.RowTemplate"/>.</exception>
 public async Task HandleAsync(DataToASCIICommand command)
 {
     try
     {
         await InnerHandleAsync(command);
     }
     catch (Exception ex)
     {
         errorDisplayService.Show($"Neznámá chyba:\n{ex.Message}");
     }
 }
コード例 #3
0
        /// <summary>
        /// Není-li požadovaný interval hodnot pro zobrazení podmnožinou již načtených data,
        /// dojde k aktualizaci dostupných dat pomocí <see cref="ILogDataUpdater"/>.
        /// Posléze jsou žádaná data předána presenteru, který zodpovídá za zobrazování dat (<see cref="Presenters.Presenter{TView}"/>).
        /// </summary>
        /// <param name="command"></param>
        /// <returns></returns>
        public async Task HandleAsync(ZobrazDataCommand command)
        {
            Session session = sessionManager.Current;

            if (session == null)
            {
                errorDisplayService.Show("Doposud nebyla zahájena session. Session začnete, nahráním souborů.");
                return;
            }
            // Hodnoty typu DateTime
            var staryPocatek = sessionManager.Current.Data?.Pocatek;
            var staryKonec   = sessionManager.Current.Data?.Konec;
            var novyPocatek  = command.Pocatek;
            var novyKonec    = command.Konec;

            try
            {
                if (staryPocatek > novyPocatek || novyKonec > staryKonec || staryPocatek == null || staryKonec == null)
                {
                    await logDataUpdater.Update(novyPocatek, novyKonec);
                }
            }
            catch (ProcesEndedByUserException) { return; }

            events.Publish <ZobrazDataRequest>(new ZobrazDataRequest()
            {
                Pocatek = novyPocatek, Konec = novyKonec
            });
        }
コード例 #4
0
 public void Handle(LoadRowTemplatesCommand command)
 {
     try
     {
         mainPresenter.LoadTemplates(templateFileReader.Read(command.Cesta));
     }
     catch (FormatException ex)
     {
         errorDisplayService.Show(ex.Message);
     }
     catch (RowTemplateFileReadException ex)
     {
         errorDisplayService.Show(ex.Message);
         if (ex.Accepted.Count > 0)
         {
             mainPresenter.LoadTemplates(ex.Accepted);
         }
     }
 }
コード例 #5
0
 /// <inheritdoc/>
 /// <exception cref="ArgumentException">V případě, že při vytvoření nového <see cref="Session"/> nebyly specifikované soubory <see cref="NewSessionRequest.Soubory"/>.</exception>
 public void Handle(NewSessionRequest command)
 {
     try
     {
         InnerHandle(command);
         events.Publish(command);
     }
     catch (ArgumentException ex)
     {
         errorDisplayService.Show(ex.Message);
     }
 }