コード例 #1
0
 private void stopTimeEntry()
 {
     runningTimeEntryDisposable?.Dispose();
     stopTime.OnNext(timeService.CurrentDateTime);
     isRunning.OnNext(false);
     analyticsEvent = analyticsEvent.With(stoppedRunningEntry: true);
 }
コード例 #2
0
 public override Task <bool> CloseWithDefaultResult()
 {
     analyticsEvent = analyticsEvent.With(result: EditDurationEvent.Result.Cancel);
     analyticsService.Track(analyticsEvent);
     Close(defaultResult);
     return(Task.FromResult(true));
 }
コード例 #3
0
        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));
        }
コード例 #4
0
        public void ResultingDictionaryHasAllParameters()
        {
            var editDurationEvent = new EditDurationEvent(false, EditDurationEvent.NavigationOrigin.Start);

            var dict = editDurationEvent.ToDictionary();

            dict.Count.Should().Be(12);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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());
        }
コード例 #7
0
        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);
            }
        }
コード例 #8
0
 public void TimeEditedWithSource(EditTimeSource source)
 {
     analyticsEvent = analyticsEvent.UpdateWith(source);
 }
コード例 #9
0
 public override void CloseWithDefaultResult()
 {
     analyticsEvent = analyticsEvent.With(result: EditDurationEvent.Result.Cancel);
     analyticsService.Track(analyticsEvent);
     Close(defaultResult);
 }
コード例 #10
0
 private Task close()
 {
     analyticsEvent = analyticsEvent.With(result: EditDurationEvent.Result.Cancel);
     analyticsService.Track(analyticsEvent);
     return(navigationService.Close(this, defaultResult));
 }