public ProjectMetadataResultContract GetProjectMetadata(long projectId, GetProjectMetadataParameter parameters) { var work = new GetLatestProjectMetadataWork(m_metadataRepository, projectId, parameters); var result = work.Execute(); var resultContract = result != null ? Mapper.Map <ProjectMetadataResultContract>(result) : new ProjectMetadataResultContract { Publisher = new PublisherContract() }; if (result != null && parameters.IsAnyAdditionalParameter()) { var project = result.Resource.Project; if (parameters.IncludeAuthor) { resultContract.AuthorList = Mapper.Map <List <OriginalAuthorContract> >(project.Authors); } if (parameters.IncludeResponsiblePerson) { resultContract.ResponsiblePersonList = Mapper.Map <List <ResponsiblePersonContract> >(project.ResponsiblePersons); } if (parameters.IncludeKind) { resultContract.LiteraryKindList = Mapper.Map <List <LiteraryKindContract> >(project.LiteraryKinds); } if (parameters.IncludeGenre) { resultContract.LiteraryGenreList = Mapper.Map <List <LiteraryGenreContract> >(project.LiteraryGenres); } } return(resultContract); }
public ProjectMetadataResultContract GetProjectMetadata(long projectId, GetProjectMetadataParameter parameters) { var work = new GetLatestProjectMetadataWork(m_metadataRepository, projectId, parameters); var result = work.Execute(); var resultContract = result != null ? m_mapper.Map <ProjectMetadataResultContract>(result) : new ProjectMetadataResultContract(); if (parameters.IsAnyAdditionalParameter()) { var project = work.GetProjectWithAdditionalData(); if (parameters.IncludeAuthor) { resultContract.AuthorList = m_mapper.Map <List <OriginalAuthorContract> >(project.Authors); } if (parameters.IncludeResponsiblePerson) { resultContract.ResponsiblePersonList = m_mapper.Map <List <ProjectResponsiblePersonContract> >(project.ResponsiblePersons); } if (parameters.IncludeKind) { resultContract.LiteraryKindList = m_mapper.Map <List <LiteraryKindContract> >(project.LiteraryKinds); } if (parameters.IncludeGenre) { resultContract.LiteraryGenreList = m_mapper.Map <List <LiteraryGenreContract> >(project.LiteraryGenres); } if (parameters.IncludeOriginal) { resultContract.LiteraryOriginalList = m_mapper.Map <List <LiteraryOriginalContract> >(project.LiteraryOriginals); } if (parameters.IncludeKeyword) { resultContract.KeywordList = m_mapper.Map <List <KeywordContract> >(project.Keywords); } if (parameters.IncludeCategory) { resultContract.CategoryList = m_mapper.Map <List <CategoryContract> >(project.Categories); } } return(resultContract); }
public IActionResult GetProjectMetadata(long projectId, [FromQuery] bool includeAuthor, [FromQuery] bool includeResponsiblePerson, [FromQuery] bool includeKind, [FromQuery] bool includeGenre) { var parameters = new GetProjectMetadataParameter { IncludeKind = includeKind, IncludeGenre = includeGenre, IncludeResponsiblePerson = includeResponsiblePerson, IncludeAuthor = includeAuthor }; var resultData = m_projectMetadataManager.GetProjectMetadata(projectId, parameters); if (resultData == null) { return(NotFound()); } return(Ok(resultData)); }
public IActionResult GetProjectMetadata(long projectId, [FromQuery] bool includeAuthor, [FromQuery] bool includeResponsiblePerson, [FromQuery] bool includeKind, [FromQuery] bool includeGenre, [FromQuery] bool includeOriginal, [FromQuery] bool includeKeyword, [FromQuery] bool includeCategory) { m_authorizationManager.AuthorizeBook(projectId, PermissionFlag.ReadProject); var parameters = new GetProjectMetadataParameter { IncludeKind = includeKind, IncludeGenre = includeGenre, IncludeOriginal = includeOriginal, IncludeResponsiblePerson = includeResponsiblePerson, IncludeAuthor = includeAuthor, IncludeKeyword = includeKeyword, IncludeCategory = includeCategory }; var resultData = m_projectMetadataManager.GetProjectMetadata(projectId, parameters); if (resultData == null) { return(NotFound()); } return(Ok(resultData)); }
public GetLatestProjectMetadataWork(MetadataRepository metadataRepository, long projectId, GetProjectMetadataParameter parameters) : base(metadataRepository.UnitOfWork) { m_metadataRepository = metadataRepository; m_projectId = projectId; m_parameters = parameters; }