public async Task Run()
        {
            var users = await _queryProcessor.Process(new GetUsersQuery(), default);

            users
            .AsParallel()
            .ForAll(user => _userCacheService.PutUser(user));
            _backgroundJobClientService.Schedule <IPopulateUserCacheJob>(x => x.Run(), TimeSpan.FromMinutes(9));
        }
        public async Task Run()
        {
            var workoutPlans = await _queryProcessor.Process(new GetAllWorkoutPlansQuery(), default);

            workoutPlans
            .AsParallel()
            .ForAll(workoutPlans => _workoutPlanCacheService.PutWorkoutPlans(workoutPlans.Key, workoutPlans.Value));
            _backgroundJobClientService.Schedule <IPopulateWorkoutPlans>(x => x.Run(), TimeSpan.FromMinutes(9));
        }
Пример #3
0
        public async Task Run()
        {
            var schedules = await _queryProcessor.Process(new GetAllWorkoutSchedulesQuery(), default);

            schedules
            .AsParallel()
            .ForAll(entry =>
                    _workoutScheduleCacheService.Put(entry.Key, entry.Value)
                    );
            _backgroundJobClientService.Schedule <IPopulateWorkoutSchedulesJob>(x => x.Run(), TimeSpan.FromMinutes(10));
        }
        public async Task Run()
        {
            try
            {
                var databaseExercises = await _queryProcessor.Process(new GetExercisesQuery(), default);

                var request  = new RestRequest(_exerciseServiceOptions.ExerciseServiceGetExercisesEndpoint, Method.GET);
                var response = await _restClient.ExecuteAsync <IEnumerable <ExercisePersistanceDTO> >(request);

                if (!response.IsSuccessful)
                {
                    _exerciseCacheService.PutExercises(databaseExercises);
                    throw new Exception("Unsuccesful request");
                }
                var exercises = response.Data;
                if (!exercises.OrderBy(x => x.Id).SequenceEqual(databaseExercises.OrderBy(x => x.Id)))
                {
                    _exerciseCacheService.PutExercises(exercises);
                    if (exercises
                        .Where(x => !databaseExercises.Any(y => y.Id == x.Id && x.Name == y.Name)).Any())
                    {
                        await _commandDispatcher.Dispatch(new AddExercisesCommand
                        {
                            Exercises =
                                exercises
                                .Where(x => !databaseExercises.Any(y => y.Id == x.Id && x.Name == y.Name))
                        }, default);
                    }

                    if (databaseExercises
                        .Where(x => !exercises.Any(y => y.Id == x.Id)).Any())
                    {
                        await _commandDispatcher.Dispatch(new DeleteExercisesCommand
                        {
                            Ids =
                                databaseExercises
                                .Where(x => !exercises.Any(y => y.Id == x.Id))
                                .Select(x => x.Id)
                        }, default);
                    }
                }
            }
            catch
            {
                //
            }
            finally
            {
                _backgroundJobClientService.Schedule <IUpdateExercisesJob>(x => x.Run(), TimeSpan.FromMinutes(60));
            }
        }
        public async Task Run()
        {
            try
            {
                var databaseResocure = await _queryProcessor.Process(new GetMoodsQuery(), default);

                var request  = new RestRequest(_options.ResocureAddress, Method.GET);
                var response = await _restClient.ExecuteAsync <IEnumerable <MoodDTO> >(request);

                if (!response.IsSuccessful)
                {
                    _moodCacheService.Put(databaseResocure);
                    throw new Exception("Unsuccesful request");
                }
                var serviceResocure = response.Data;
                if (!serviceResocure.OrderBy(x => x.Id).SequenceEqual(databaseResocure.OrderBy(x => x.Id)))
                {
                    _moodCacheService.Put(serviceResocure);
                    if (serviceResocure
                        .Where(x => !databaseResocure.Any(y => y.Id == x.Id && x.Name == y.Name)).Any())
                    {
                        await _commandDispatcher.Dispatch(new AddMoodCommand
                        {
                            Moods =
                                serviceResocure
                                .Where(x => !databaseResocure.Any(y => y.Id == x.Id && x.Name == y.Name))
                        }, default);
                    }

                    if (databaseResocure
                        .Where(x => !serviceResocure.Any(y => y.Id == x.Id)).Any())
                    {
                        await _commandDispatcher.Dispatch(new DeleteMoodCommand
                        {
                            Moods =
                                databaseResocure
                                .Where(x => !serviceResocure.Any(y => y.Id == x.Id))
                        }, default);
                    }
                }
            }
            catch
            {
                //
            }
            finally
            {
                _backgroundJobClientService.Schedule <IPopulateMoodsJob>(x => x.Run(), TimeSpan.FromMinutes(60));
            }
        }