public ContinueTimeEntryInfo(LogItemViewModel viewModel, ContinueTimeEntryMode continueMode) { Id = viewModel.RepresentedTimeEntriesIds.First(); IndexInLog = viewModel.IndexInLog; DayInLog = viewModel.DayInLog; DaysInThePast = viewModel.DaysInThePast; ContinueMode = continueMode; }
public async Task PropagatesCorrectTimeEntryStartOriginToAnalytics(ContinueTimeEntryMode continueMode) { var prototype = CreatePrototype(ValidTime, ValidDescription, true, ProjectId); await InteractorFactory.ContinueTimeEntry(prototype, continueMode).Execute(); AnalyticsService.Received().Track(Arg.Is <StartTimeEntryEvent>( ev => (int)ev.Origin == (int)continueMode && ev.Origin.ToString() == continueMode.ToString())); }
private ContinueTimeEntryOrigin originFromContinuationMode(ContinueTimeEntryMode mode) { switch (mode) { case ContinueTimeEntryMode.SingleTimeEntrySwipe: return(ContinueTimeEntryOrigin.Swipe); case ContinueTimeEntryMode.SingleTimeEntryContinueButton: return(ContinueTimeEntryOrigin.ContinueButton); case ContinueTimeEntryMode.TimeEntriesGroupSwipe: return(ContinueTimeEntryOrigin.GroupSwipe); case ContinueTimeEntryMode.TimeEntriesGroupContinueButton: return(ContinueTimeEntryOrigin.GroupContinueButton); } throw new InvalidEnumArgumentException($"Unexpected continue time entry mode {mode}"); }
public ContinueTimeEntryFromMainLogInteractor( IInteractorFactory interactorFactory, IAnalyticsService analyticsService, ITimeEntryPrototype timeEntryPrototype, ContinueTimeEntryMode continueMode, int indexInLog, int dayInLog, int daysInThePast) { Ensure.Argument.IsNotNull(interactorFactory, nameof(interactorFactory)); Ensure.Argument.IsNotNull(analyticsService, nameof(analyticsService)); Ensure.Argument.IsNotNull(timeEntryPrototype, nameof(timeEntryPrototype)); Ensure.Argument.IsNotNull(continueMode, nameof(continueMode)); this.interactorFactory = interactorFactory; this.analyticsService = analyticsService; this.timeEntryPrototype = timeEntryPrototype; this.continueMode = continueMode; this.indexInLog = indexInLog; this.dayInLog = dayInLog; this.daysInThePast = daysInThePast; }
public async Task TracksTheTimeEntryContinuedEvent(ContinueTimeEntryMode continueMode, ContinueTimeEntryOrigin expectedOrigin) { InteractorFactory .ContinueTimeEntry(Arg.Any <ITimeEntryPrototype>(), Arg.Any <ContinueTimeEntryMode>()) .Execute() .Returns(Observable.Return(createdTimeEntry)); var interactor = new ContinueTimeEntryFromMainLogInteractor( InteractorFactory, AnalyticsService, timeEntryPrototype, continueMode, IndexInLog, DayInLog, DaysInPast); await interactor.Execute(); AnalyticsService .Received() .TimeEntryContinued .Track(expectedOrigin, IndexInLog, DayInLog, DaysInPast); }
public IInteractor <IObservable <IThreadSafeTimeEntry> > ContinueTimeEntry(ITimeEntryPrototype prototype, ContinueTimeEntryMode continueMode) => new CreateTimeEntryInteractor( idProvider, timeService, dataSource, analyticsService, intentDonationService, prototype, syncManager, timeService.CurrentDateTime, null, (TimeEntryStartOrigin)continueMode);
public IInteractor <IObservable <IThreadSafeTimeEntry> > ContinueTimeEntryFromMainLog(ITimeEntryPrototype prototype, ContinueTimeEntryMode continueMode, int indexInLog, int dayInLog, int daysInThePast) => new ContinueTimeEntryFromMainLogInteractor( this, analyticsService, prototype, continueMode, indexInLog, dayInLog, daysInThePast);