public DeveloperPageDeveloper ToDeveloperPageDeveloper(Account account) { Require.NotNull(account, nameof(account)); var role = _userRoleAnalyzer.GetUserCommonRole(account.UserId); var projectCount = _projectProvider.GetProjects( project => project.ProjectMemberships.Any( membership => membership.DeveloperId == account.UserId)) .Count; return(new DeveloperPageDeveloper( account.UserId, account.Firstname, account.Lastname, account.Profile?.Image?.SmallPhotoUri, role, account.RegistrationTime, projectCount, account.Profile?.VkProfileUri, account.Role, account.ConfirmationStatus, account.IsHidden)); }
public IEnumerable <IndexPageProject> GetRandomIndexPageProjects(int count) { Require.ZeroOrGreater(count, nameof(count)); List <Project> requiredProjects; if (User.IsInRole(AccountRole.User)) { requiredProjects = _projectProvider.GetProjects(); } else { requiredProjects = _projectProvider.GetProjects( project => ProjectsPolicies.OnlyDoneOrInProgress(project) && ProjectsPolicies.OnlyPublic(project)); } var randomProjects = requiredProjects.GetRandom(count); return(randomProjects.Select(_projectsMapper.ToIndexPageProject)); }