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 }); }
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()); }