コード例 #1
0
        public async Task <IActionResult> Index()
        {
            var readUsersRequest = new ReadUsersRequest();
            var response         = await _userApplicationService.Handle(readUsersRequest);

            return(View(response));
        }
コード例 #2
0
        public async Task <IActionResult> Details([BindRequired] long?projectId)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction(nameof(Index)));
            }

            var readProjectRequest = new ReadProjectRequest
            {
                ProjectId = projectId.Value
            };
            var project = await _projectApplicationService.Handle(readProjectRequest);

            var readAvailableTeamMembers = new ReadUsersRequest
            {
                Roles = new List <string> {
                    "frontend", "backend", "tester"
                }
            };
            var availableTeamMembers = await _userApplicationService.Handle(readAvailableTeamMembers);

            var viewModel = new ProjectDetailsViewModel
            {
                Project        = project,
                AvailableUsers = availableTeamMembers
                                 .Select(user => new SelectListItem {
                    Value = user.Id.ToString(), Text = user.FullName
                })
                                 .ToList()
            };

            return(View(viewModel));
        }
コード例 #3
0
        public async Task <IActionResult> Create([FromForm, Bind("Name,Description,ManagerId")] CreateProjectViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var readManagerUserRequest = new ReadUsersRequest
                {
                    Roles = new List <string> {
                        "manager"
                    }
                };
                var managers = await _userApplicationService.Handle(readManagerUserRequest);

                model.Managers = managers
                                 .Select(manager => new SelectListItem
                {
                    Value = manager.Id.ToString(),
                    Text  = manager.FullName
                })
                                 .ToList();

                return(View(model));
            }

            var createProjectRequest = new CreateProjectRequest
            {
                Name          = model.Name,
                Description   = model.Description,
                ManagerUserId = model.ManagerId.Value
            };
            var response = await _projectApplicationService.Handle(createProjectRequest);

            return(RedirectToAction(nameof(Index)));
        }
コード例 #4
0
        public async Task <IEnumerable <UserResponse> > Handle(ReadUsersRequest request)
        {
            IEnumerable <User> users = null;

            if (request.Roles != default)
            {
                var roles = request.Roles
                            .Select(role => Enum.Parse <UserRole>(role.ToUpper()));
                users = await _userRepository.ReadAll(roles);
            }
            else
            {
                users = await _userRepository.ReadAll();
            }

            var response = users.Select(user => user.Adapt <UserResponse>())
                           .ToList();

            return(response);
        }
コード例 #5
0
        public async Task <IActionResult> Create()
        {
            var readManagerUserRequest = new ReadUsersRequest
            {
                Roles = new List <string> {
                    "manager"
                }
            };
            var managers = await _userApplicationService.Handle(readManagerUserRequest);

            var viewModel = new CreateProjectViewModel
            {
                Managers = managers
                           .Select(manager => new SelectListItem
                {
                    Value = manager.Id.ToString(),
                    Text  = manager.FullName
                })
                           .ToList()
            };

            return(View(viewModel));
        }