예제 #1
0
        public WorkoutPreviewViewModel GetWorkoutPreviewByName(string workoutName, string username)
        {
            var identityUser   = _userManager.FindByNameAsync(username);
            var userExpression = new MainUserWithTitleExpression(identityUser.Result.Id);

            var user = _repository.GetBy <MainUser>(userExpression);

            var workoutExpression = new WorkoutRoutineWithWourkoutDaysExpression(user.Id, workoutName);
            var workout           = _repository.GetBy <WorkoutRoutine>(workoutExpression);

            return(new WorkoutPreviewViewModel
            {
                Id = workout.Id,
                AvatarUrl = _userService.GetAvatar(workout.Creator.Username),
                Creator = workout.Creator.Username,
                Days = workout.WorkoutDays.Count,
                Title = _userService.GetTitleForAchievementPoints(workout.Creator.AchievementPoints).Name,
                WorkoutName = workout.Name,
                WorkoutRoutine = workout
            });
        }
예제 #2
0
        public IEnumerable <WorkoutPreviewViewModel> GetWorkoutsPreviewByName(string searchedUsername, string loggedInUsername)
        {
            var user       = _userService.GetMainUserByUsername(searchedUsername);
            var expression = new WorkoutRoutineWithWourkoutDaysExpression(user.Id);
            var workouts   = _repository.List <WorkoutRoutine>(expression);

            if (!workouts.All(x => x.Creator.Username == loggedInUsername))
            {
                workouts = workouts.Where(x => x.IsPublic == true);
            }

            return(workouts.Select(x => new WorkoutPreviewViewModel
            {
                AvatarUrl = _userService.GetAvatar(searchedUsername),
                Creator = searchedUsername,
                Days = x.WorkoutDays.Count,
                Id = x.Id,
                Title = _userService.GetTitleForAchievementPoints(x.Creator.AchievementPoints).Name,
                WorkoutRoutine = x,
                WorkoutName = x.Name,
                TimesUsed = x.TimesCopied.Count
            }).ToList());
        }