예제 #1
0
        public async Task ThreeProjectsExist_Executed_ReturnThreeProjectViewModels() //Aplicando o padrão PADRÃO GIVE WHEN THEN
        {
            //Padrão AAA
            //Arrange
            var projects = new List <Project>
            {
                new Project("Nome do projeto 1", "Descricao de teste", 1, 2, 10000),
                new Project("Nome do projeto 2", "Descricao de teste", 1, 2, 10000),
                new Project("Nome do projeto 3", "Descricao de teste", 1, 2, 10000),
            };

            var projectRepositoryMock = new Mock <IProjectRepository>();

            projectRepositoryMock.Setup(pr => pr.GetAllAsync().Result).Returns(projects);

            var getAllProjectsQuery        = new GetAllProjectsQuery("");
            var getAllProjectsQueryHandler = new GetAllProjectsQueryHandler(projectRepositoryMock.Object);

            //Act
            var projectViewModelList = await getAllProjectsQueryHandler.Handle(getAllProjectsQuery, new CancellationToken());

            //Assert
            Assert.NotNull(projectViewModelList);
            Assert.NotEmpty(projectViewModelList);
            Assert.Equal(projects.Count, projectViewModelList.Count);                //Verificar se foi retornada uma lista de 3 projetos no view model

            projectRepositoryMock.Verify(pr => pr.GetAllAsync().Result, Times.Once); //Verificar se o método GetAllAsync foi chamado uma vez
        }
예제 #2
0
        public async Task ThreeProjectsExist_Executed_ReturnThreeProjectViewModel()
        {
            //Arrange
            var projects = new List <Project>
            {
                new Project("Nome do Teste 1", "Descricao do Teste 1", 1, 1, 10000),
                new Project("Nome do Teste 2", "Descricao do Teste 2", 2, 2, 20000),
                new Project("Nome do Teste 3", "Descricao do Teste 3", 3, 3, 30000)
            };

            var projectRepositoryMock = new Mock <IProjectRepository>();

            projectRepositoryMock.Setup(pr => pr.GetAllAsync()).ReturnsAsync(projects);

            var getAllProjectsQuery        = new GetAllProjectsQuery("");
            var getAllProjectsQueryHandler = new GetAllProjectsQueryHandler(projectRepositoryMock.Object);

            //Act
            var projectViewModelList = await getAllProjectsQueryHandler.Handle(getAllProjectsQuery, new CancellationToken());

            //Assert
            Assert.NotNull(projectViewModelList);
            Assert.NotEmpty(projectViewModelList);
            Assert.Equal(projects.Count, projectViewModelList.Count);
            projectRepositoryMock.Verify(pr => pr.GetAllAsync(), Times.Once);
        }
        public async Task <ActionResult <Pagination <ProjectDto> > > GetAllProjects([FromQuery] ProjectSpecParams parameters)
        {
            var query  = new GetAllProjectsQuery(parameters);
            var result = await _mediator.Send(query);

            return(Ok(result));
        }
예제 #4
0
        public async Task <IActionResult> Get(string query)
        {
            var getAllProjectsQuery = new GetAllProjectsQuery(query);
            var projects            = await _mediator.Send(getAllProjectsQuery);

            return(Ok(projects));
        }
예제 #5
0
        public async Task <IActionResult> Get()
        {
            //var projects = _projectService.GetAll();
            var query    = new GetAllProjectsQuery();
            var projects = await _mediator.Send(query);

            return(Ok(projects));
        }
        public async Task <IEnumerable <ProjectDto> > Handle(GetAllProjectsQuery query, CancellationToken cancellationToken)
        {
            var specification = new  ProjectSpecification();
            var projects      = await _projectRepository.GetAllAsync(specification);

            var mappedProjects = projects.Select(_mapperService.MapProjectToProjectDto).ToArray();

            return(mappedProjects);
        }
        public async Task <List <ProjectDto> > Handle(GetAllProjectsQuery request, CancellationToken cancellationToken)
        {
            try
            {
                var projects = await _context.Projects.Include(a => a.Owner).Include(a => a.Issues).ToListAsync();

                return(_mapper.Map <List <ProjectDto> >(projects));
            }
            catch (System.Exception ex)
            {
                throw;
            }
        }
        public async Task <IActionResult> GetAll([FromBody] GetAllProjectsQuery query)
        {
            try
            {
                var output = await Mediator.Send(query);

                return(Ok(output));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
예제 #9
0
        public async Task <Pagination <ProjectDto> > Handle(GetAllProjectsQuery request, CancellationToken cancellationToken)
        {
            var spec = new ProjectsWithMembersSpecification(request.ProjectParameters);

            var countSpec = new ProjectsWithFiltersForCountSpecification(request.ProjectParameters);

            var projects = await _unitOfWork.Repository <Project>().ListAsync(spec);

            var count = await _unitOfWork.Repository <Project>().CountAsync(countSpec);

            var data = _mapper.Map <IReadOnlyList <Project>, IReadOnlyList <ProjectDto> >(projects);

            return(new Pagination <ProjectDto>(request.ProjectParameters.PageIndex, request.ProjectParameters.PageSize, count, data));
        }
        public async Task <ActionResult> GetAllProjects([FromQuery] GetAllProjectsQuery query, [FromQuery] PaginationQuery paginationQuery)
        {
            var pagination = _mapper.Map <PaginationFilter>(paginationQuery);
            var filter     = _mapper.Map <GetAllProjectsFilter>(query);

            if (HttpContext.User.Identity.IsAuthenticated)
            {
                filter.CurrentUserId = HttpContext.GetUserId();
            }
            var projects = await _projectService.GetProjectsAsync(filter, pagination).ConfigureAwait(false);

            var projectsResponse = _mapper.Map <List <ProjectResponse> >(projects.list);

            if (pagination == null || pagination.PageNumber < 1 || pagination.PageSize < 1)
            {
                return(Ok(new PagedResponse <ProjectResponse>(projectsResponse, projects.count)));
            }
            var paginationResponse = PaginationHelpers.CreatePaginatedResponse(_uriService, pagination, projectsResponse, projects.count);

            return(Ok(paginationResponse));
        }
예제 #11
0
 public Version0Controller(GetAllProjectsQuery getAllProjectsQuery)
 {
     _getAllProjectsQuery = getAllProjectsQuery ?? throw new ArgumentNullException(nameof(getAllProjectsQuery));
 }
예제 #12
0
 protected override IEnumerable <Project> Handle(GetAllProjectsQuery request)
 {
     return(ProjectRepository
            .FindAllProjects()
            .OrderByDescending(x => x.Number));
 }
        public async Task <List <Project> > Handle(GetAllProjectsQuery request, CancellationToken cancellationToken)
        {
            var projects = await _projectRepo.FindAll().ToListAsync();

            return(projects);
        }