Example #1
0
        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));
        }
Example #2
0
        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));
        }