public async Task HandleAsync(GetGeneratedWeeklyReportPhrQuery request)
            {
                var getProjectQuery = new GetProjectQuery {
                    ProjectId = request.ProjectId
                };
                var getWeeklyReportQuery = new GetWeeklyReportPhrQuery()
                {
                    ProjectId    = request.ProjectId,
                    NumberOfWeek = request.NumberOfWeek,
                    Week         = request.Week,
                    Year         = request.Year,
                    NumberOfWeekNotShowClosedItem = request.NumberOfWeekNotShowClosedItem
                };

                var weeklyReport = await _mediator.SendAsync(getWeeklyReportQuery);

                if (weeklyReport.BacklogItem != null)
                {
                    weeklyReport.BacklogItemListReadOnly.Add(weeklyReport.BacklogItem);
                }

                if (weeklyReport.QualityReport != null)
                {
                    weeklyReport.QualityReportListReadOnly.Add(weeklyReport.QualityReport);
                }

                var dto = new Dto
                {
                    Project      = await _mediator.SendAsync(getProjectQuery),
                    WeeklyReport = weeklyReport
                };

                request.Response = dto;
            }
示例#2
0
        public IActionResult Get(Guid id)
        {
            var query  = new GetProjectQuery(id);
            var result = _bus.PublishQuery(query);

            if (result == null)
            {
                return(NotFound());
            }

            var project = JsonConvert.DeserializeObject <ProjectViewModel>(result);

            return(Ok(project));
        }
示例#3
0
        public IActionResult Delete(Guid id)
        {
            var query   = new GetProjectQuery(id);
            var project = _bus.PublishQuery(query);

            // validation
            if (project == null)
            {
                return(NotFound());
            }

            var command = new DeleteProjectCommand(id);

            _bus.PublishCommand(command);
            return(Ok());
        }
示例#4
0
        public IActionResult Patch(Guid id, [FromBody] ProjectUpdateModel model)
        {
            var query   = new GetProjectQuery(id);
            var project = _bus.PublishQuery(query);

            // validation
            if (project == null)
            {
                return(NotFound());
            }

            var command = new UpdateProjectCommand(id, model.Title, model.Description);

            _bus.PublishCommand(command);
            return(Ok());
        }
示例#5
0
        public IActionResult PostComment(Guid id, [FromBody] CommentPostModel model)
        {
            var query   = new GetProjectQuery(id);
            var project = _bus.PublishQuery(query);

            // validation
            if (project == null)
            {
                return(NotFound());
            }

            var command = new PostCommentOnProjectCommand(id, new Guid(User.GetClaim("id")), model.Content, DateTime.Now);

            _bus.PublishCommand(command);
            return(Ok());
        }
示例#6
0
        public IActionResult Approve(Guid id, Guid userId)
        {
            var query   = new GetProjectQuery(id);
            var project = _bus.PublishQuery(query);

            // validation
            if (project == null)
            {
                return(NotFound());
            }

            var command = new ApproveTeamUserCommand(userId, id);

            _bus.PublishCommand(command);
            return(Ok());
        }
示例#7
0
        public IActionResult Join(Guid id, [FromBody] Guid userId)
        {
            var query   = new GetProjectQuery(id);
            var project = _bus.PublishQuery(query);

            // validation
            if (project == null)
            {
                return(NotFound());
            }

            var command = new JoinTeamCommand(userId, id);

            _bus.PublishCommand(command);
            return(Ok());
        }
示例#8
0
        public async Task ShouldGetProjectItem()
        {
            var createProjectCommand = new CreateProjectCommand("project1", true);
            var createProjectDto     = await SendAsync(createProjectCommand);

            var getProjectListQuery = new GetProjectQuery(createProjectDto.Id);
            var getProjectListDto   = await SendAsync(getProjectListQuery);

            getProjectListDto.ShouldNotBeNull();
            getProjectListDto.Id.ShouldBe(createProjectDto.Id);
            getProjectListDto.IsEnabled.ShouldBe(true);
            getProjectListDto.Name.ShouldBe("project1");

            var deleteProjectCommand = new DeleteProjectCommand(createProjectDto.Id);

            await SendAsync(deleteProjectCommand);
        }
示例#9
0
        public ActionResult EditProject(Guid projectId)
        {
            var query = new GetProjectQuery
            {
                ProjectId = projectId
            };

            var project = mediator.Send(query);

            var model = new EditProjectModel()
            {
                ProjectId    = projectId,
                Name         = project.Name,
                ClientName   = project.ClientName,
                Status       = project.Status,
                StartDate    = project.StartDate,
                ProjectOwner = project.ProjectOwner,
                Description  = project.Description,
                IconId       = project.IconId
            };

            return(View(model));
        }