/// <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 }); }
public async Task Update_PocatekJeVetsiJakKonec_VyhodiError() { // Arrange DateTime pocatek = DateTime.Parse("11.5.2020 6:42:55"); DateTime konec = DateTime.Parse("11.5.2020 6:41:5"); // Act Func <Task> action = async() => await logDataUpdater.Update(pocatek, konec); // Assert var ex = await Assert.ThrowsAsync <ArgumentException>(action); Assert.Contains("Hodnota počátku časového intervalu musí být menší než hodnota konce.", ex.Message); }