public static ISyncManager CreateSyncManager( ITogglDatabase database, ITogglApi api, ITogglDataSource dataSource, ITimeService timeService, IAnalyticsService analyticsService, ILastTimeUsageStorage lastTimeUsageStorage, IScheduler scheduler, IStopwatchProvider stopwatchProvider) { var queue = new SyncStateQueue(); var entryPoints = new StateMachineEntryPoints(); var transitions = new TransitionHandlerProvider(analyticsService); ConfigureTransitions(transitions, database, api, dataSource, scheduler, timeService, analyticsService, entryPoints, queue); var stateMachine = new StateMachine(transitions, scheduler); var orchestrator = new StateMachineOrchestrator(stateMachine, entryPoints); return(new SyncManager(queue, orchestrator, analyticsService, lastTimeUsageStorage, timeService, stopwatchProvider)); }
public Builder WithStopwatchProvider(IStopwatchProvider stopwatchProvider) { StopwatchProvider = stopwatchProvider; return(this); }