Esempio n. 1
0
        private async Task <RobotViewModel[]> RefreshCache()
        {
            var robots = await _robotService.GetRobotsBy(string.Empty, null);

            return(robots.Select(e => new RobotViewModel(e)).ToArray());
            //TODO: determine better caching process, perhaps at the services layer instead the api boundary
            //return _helpersManager.Cache.Set((DateTime.Today, ActorType.Cyborg), robots.Select(e => new CyborgViewModel(e)).ToArray());
        }
        public override async Task OnResultExecutionAsync(ResultExecutingContext context, ResultExecutionDelegate next)
        {
            //TODO: invalidate cache, this is inefficient
            var robots = await _robotService.GetRobotsBy(string.Empty, null);

            _helpersManager.Cache.Set((DateTime.Today, ActorType.Robot), robots.Select(e => new RobotViewModel(e)).ToArray());
            await next();
        }
Esempio n. 3
0
        private async Task <ICanPerformErrand> DeactivateRandomRobot(ICanPerformErrand actor)
        {
            var targettedActors = await _robotService.GetRobotsBy(string.Empty, null);

            int randomSkipCount   = _randomGenerator.Next(0, targettedActors.Count());
            var actorToDeactivate = targettedActors.Skip(randomSkipCount).Take(1).First();

            if (actorToDeactivate != null)
            {
                actorToDeactivate.IsActive   = false;
                actorToDeactivate.KilledById = actor.Id;
                return(actorToDeactivate);
            }
            else
            {
                return(null);
            }
        }