private void stopTimeEntry() { runningTimeEntryDisposable?.Dispose(); stopTime.OnNext(timeService.CurrentDateTime); isRunning.OnNext(false); analyticsEvent = analyticsEvent.With(stoppedRunningEntry: true); }
public override Task <bool> CloseWithDefaultResult() { analyticsEvent = analyticsEvent.With(result: EditDurationEvent.Result.Cancel); analyticsService.Track(analyticsEvent); Close(defaultResult); return(Task.FromResult(true)); }
public override Task Initialize(EditDurationParameters parameter) { defaultResult = parameter.DurationParam; isRunning.OnNext(defaultResult.Duration.HasValue == false); beginningOfWeekDisposable = dataSource.User.Current .Subscribe(user => BeginningOfWeek = user.BeginningOfWeek); analyticsEvent = new EditDurationEvent(isRunning.Value, parameter.IsStartingNewEntry ? EditDurationEvent.NavigationOrigin.Start : EditDurationEvent.NavigationOrigin.Edit); if (isRunning.Value) { runningTimeEntryDisposable = timeService.CurrentDateTimeObservable .Subscribe(currentTime => stopTime.OnNext(currentTime)); } var start = parameter.DurationParam.Start; var stop = parameter.DurationParam.Duration.HasValue ? start + parameter.DurationParam.Duration.Value : timeService.CurrentDateTime; startTime.OnNext(start); stopTime.OnNext(stop); minimumDateTime.OnNext(start); maximumDateTime.OnNext(stop); IsDurationInitiallyFocused = parameter.IsDurationInitiallyFocused; return(base.Initialize(parameter)); }
public void ResultingDictionaryHasAllParameters() { var editDurationEvent = new EditDurationEvent(false, EditDurationEvent.NavigationOrigin.Start); var dict = editDurationEvent.ToDictionary(); dict.Count.Should().Be(12); }
private void save() { analyticsEvent = analyticsEvent.With(result: EditDurationEvent.Result.Save); analyticsService.Track(analyticsEvent); var duration = stopTime.Value - startTime.Value; var result = DurationParameter.WithStartAndDuration(startTime.Value, isRunning.Value ? (TimeSpan?)null : duration); Close(result); }
public void SetsParametersUsingUpdateWith() { var editDurationEvent = new EditDurationEvent(false, EditDurationEvent.NavigationOrigin.Start); var changedEndTimeWithBarrel = editDurationEvent.ToDictionary()["changedEndTimeWithBarrel"]; editDurationEvent = editDurationEvent.UpdateWith(EditTimeSource.BarrelStopTime); var dict = editDurationEvent.ToDictionary(); changedEndTimeWithBarrel.Should().Be(false.ToString()); dict["changedEndTimeWithBarrel"].Should().Be(true.ToString()); }
private void editStopTime() { if (isRunning.Value) { runningTimeEntryDisposable?.Dispose(); stopTime.OnNext(timeService.CurrentDateTime); isRunning.OnNext(false); analyticsEvent = analyticsEvent.With(stoppedRunningEntry: true); } if (editMode.Value == EditMode.EndTime) { editMode.OnNext(EditMode.None); } else { minimumDateTime.OnNext(startTime.Value); maximumDateTime.OnNext(startTime.Value.AddHours(MaxTimeEntryDurationInHours)); editMode.OnNext(EditMode.EndTime); } }
public void TimeEditedWithSource(EditTimeSource source) { analyticsEvent = analyticsEvent.UpdateWith(source); }
public override void CloseWithDefaultResult() { analyticsEvent = analyticsEvent.With(result: EditDurationEvent.Result.Cancel); analyticsService.Track(analyticsEvent); Close(defaultResult); }
private Task close() { analyticsEvent = analyticsEvent.With(result: EditDurationEvent.Result.Cancel); analyticsService.Track(analyticsEvent); return(navigationService.Close(this, defaultResult)); }