예제 #1
0
        public ViewProjectResponse Execute(AuthorizedIdRequest request)
        {
            request.ThrowExceptionIfInvalid();

            var entity   = _projectRepository.Read(request.Id);
            var response = new ViewProjectResponse
            {
                Id               = request.Id,
                Name             = entity.Name,
                DefinitionOfDone = entity.DefinitionOfDone.Conditions,
                Description      = entity.Description,
                TeamId           = entity.TeamId,
            };
            var sprint = _sprintRepository.ReadCurrentSprint(request.Id);

            if (sprint != null)
            {
                response.Sprint = _viewSprintUseCase.Execute(new AuthorizedIdRequest(request.UserId)
                {
                    Id = sprint.Id,
                });
                response.Report = _sprintReportUseCase.Execute(new AuthorizedIdRequest(request.UserId)
                {
                    Id = sprint.Id,
                });
            }

            return(response);
        }
예제 #2
0
        public ViewProjectViewModel Present(ViewProjectResponse response)
        {
            var team = RepositoryProvider.Team.Read(response.TeamId);

            return(new ViewProjectViewModel
            {
                Id = response.Id.ToPresentationIdentity(),
                Name = response.Name,
                Team = team.ToViewModel(),
                Description = response.Description,
                DefinitionOfDone = response.DefinitionOfDone,
                Sprint = response.Sprint != null?_viewSprintPresenter.Present(response.Sprint) : null,
                             Report = response.Report != null?_sprintReportPresenter.Present(response.Report) : null,
                                          CanDelete = response.CanDelete,
            });
        }