Ejemplo n.º 1
0
        public void Handle(UpdateUserState command)
        {
            var user = _repository.GetById <User>(command.AggregateId, int.MaxValue);

            if (user == null)
            {
                throw new OperationCanceledException(string.Format("User with id {0} not found", command.AggregateId));
            }

            user.UpdateState(command.State, command.UpdateDate);
            _repository.Save(user, Guid.NewGuid());
        }
Ejemplo n.º 2
0
        private static IStateResult configurePushTransitionsForUsers(
            TransitionHandlerProvider transitions,
            ITogglDatabase database,
            ITogglApi api,
            IScheduler scheduler,
            IStateResult entryPoint,
            IObservable <Unit> delayCancellation)
        {
            var rnd         = new Random();
            var apiDelay    = new RetryDelayService(rnd);
            var statusDelay = new RetryDelayService(rnd);

            var push              = new PushUsersState(database.User);
            var pushOne           = new PushOneEntityState <IDatabaseUser>();
            var update            = new UpdateUserState(api, database.User);
            var unsyncable        = new UnsyncableUserState(database.User);
            var checkServerStatus = new CheckServerStatusState(api, scheduler, apiDelay, statusDelay, delayCancellation);
            var finished          = new ResetAPIDelayState(apiDelay);

            return(configureUpdateOnlyPush(transitions, entryPoint, push, pushOne, update, unsyncable, checkServerStatus, finished));
        }