public PagedResultList <ProjectDetailContract> GetProjectList(int start, int count, ProjectTypeContract projectType, ProjectOwnerTypeContract projectOwnerType = ProjectOwnerTypeContract.AllProjects, string filterByName = null, bool fetchPageCount = false, bool fetchLatestChangedResource = false, bool fetchPermissions = false) { try { var url = UrlQueryBuilder.Create("project") .AddParameter("start", start) .AddParameter("count", count) .AddParameter("projectType", projectType) .AddParameter("projectOwnerType", projectOwnerType) .AddParameter("filterByName", filterByName) .AddParameter("fetchPageCount", fetchPageCount) .AddParameter("fetchLatestChangedResource", fetchLatestChangedResource) .AddParameter("fetchPermissions", fetchPermissions) .ToResult(); var result = m_client.GetPagedList <ProjectDetailContract>(url); return(result); } catch (HttpRequestException e) { if (m_logger.IsErrorEnabled()) { m_logger.LogError("{0} failed with {1}", m_client.GetCurrentMethod(), e); } throw; } }
public GetProjectListWork(ProjectRepository projectRepository, MetadataRepository metadataRepository, int start, int count, ProjectTypeEnum?projectType, ProjectOwnerTypeContract projectOwnerType, int userId, string filterByName, bool fetchPageCount, bool fetchAuthors, bool fetchResponsiblePersons, bool fetchLatestChangedResource, bool fetchPermissions) : base(projectRepository) { m_projectRepository = projectRepository; m_metadataRepository = metadataRepository; m_start = start; m_count = count; m_projectType = projectType; m_projectOwnerType = projectOwnerType; m_userId = userId; m_filterByName = filterByName; m_fetchPageCount = fetchPageCount; m_fetchAuthors = fetchAuthors; m_fetchResponsiblePersons = fetchResponsiblePersons; m_fetchLatestChangedResource = fetchLatestChangedResource; m_fetchPermissions = fetchPermissions; }
public IActionResult List(string search, int start, int count = PageSizes.ProjectList, ViewType viewType = ViewType.Full, ProjectOwnerTypeContract projectOwnerType = ProjectOwnerTypeContract.MyProjects) { var client = GetProjectClient(); var result = client.GetProjectList(start, count, GetDefaultProjectType(), projectOwnerType, search, true, true, true); var projectItems = Mapper.Map <List <ProjectItemViewModel> >(result.List); var listViewModel = new ListViewModel <ProjectItemViewModel> { TotalCount = result.TotalCount, List = projectItems, PageSize = count, Start = start, SearchQuery = search }; var filterTypes = new List <ProjectOwnerTypeContract> { ProjectOwnerTypeContract.MyProjects, ProjectOwnerTypeContract.ForeignProjects, ProjectOwnerTypeContract.AllProjects, }; var viewModel = new ProjectListViewModel { Projects = listViewModel, AvailableBookTypes = ProjectConstants.AvailableBookTypes, FilterTypes = filterTypes.Select(x => new SelectListItem(m_localization.Translate(x.ToString(), "Admin"), x.ToString(), x == projectOwnerType)).ToList() }; switch (viewType) { case ViewType.Widget: return(PartialView("_ProjectListContent", listViewModel)); case ViewType.Full: return(View(viewModel)); default: return(View(viewModel)); } }
public PagedResultList <ProjectDetailContract> GetProjectList(int?start, int?count, ProjectTypeContract?projectType, ProjectOwnerTypeContract projectOwnerType, string filterByName, bool fetchPageCount, bool fetchAuthors, bool fetchResponsiblePersons, bool fetchLatestChangedResource, bool fetchPermissions) { var startValue = PagingHelper.GetStart(start); var countValue = PagingHelper.GetCountForProject(count); var projectTypeEnum = m_mapper.Map <ProjectTypeEnum?>(projectType); var userId = m_authenticationManager.GetCurrentUserId(); var work = new GetProjectListWork(m_projectRepository, m_metadataRepository, startValue, countValue, projectTypeEnum, projectOwnerType, userId, filterByName, fetchPageCount, fetchAuthors, fetchResponsiblePersons, fetchLatestChangedResource, fetchPermissions); var resultEntities = work.Execute(); var metadataList = work.GetMetadataResources(); var pageCountList = work.GetPageCountList(); var latestChangesList = work.GetLatestChangedResources(); var userPermissionDict = work.GetUserPermission(); var resultList = m_mapper.Map <List <ProjectDetailContract> >(resultEntities); foreach (var projectContract in resultList) { var metadataResource = metadataList.FirstOrDefault(x => x.Resource.Project.Id == projectContract.Id); var pageCountResult = pageCountList.FirstOrDefault(x => x.ProjectId == projectContract.Id); var latestChangeResult = latestChangesList.FirstOrDefault(x => x.ProjectId == projectContract.Id); var metadataContract = m_mapper.Map <ProjectMetadataContract>(metadataResource); projectContract.LatestMetadata = metadataContract; projectContract.PageCount = pageCountResult?.PageCount; projectContract.CreatedByUser = m_userDetailManager.GetUserContractForUser(projectContract.CreatedByUser); if (fetchAuthors && metadataResource != null) { projectContract.Authors = m_mapper.Map <List <OriginalAuthorContract> >(metadataResource.Resource.Project.Authors); } if (fetchResponsiblePersons && metadataResource != null) { projectContract.ResponsiblePersons = m_mapper.Map <List <ProjectResponsiblePersonContract> >(metadataResource.Resource.Project.ResponsiblePersons); } if (fetchLatestChangedResource && latestChangeResult != null) { projectContract.LatestChangeTime = latestChangeResult.CreateTime; projectContract.EditedByUser = m_userDetailManager.GetUserContract(latestChangeResult.CreatedByUserId); } if (fetchPermissions) { userPermissionDict.TryGetValue(projectContract.Id, out var permissions); projectContract.CurrentUserPermissions = m_projectPermissionConverter.GetAggregatedPermissions(permissions); } } return(new PagedResultList <ProjectDetailContract> { List = resultList, TotalCount = work.GetResultCount() }); }