示例#1
0
        public async Task <ICommandResult> Handle(AddDeveloperInProjectCommand command)
        {
            command.Validate();
            if (command.Invalid)
            {
                return(new GenericCommandResult(false, "Operação inválida", command.Notifications));
            }

            var projectDb = await _projectRepository.GetProjectWithDevelopersProject(command.ProjectId);

            if (projectDb == null)
            {
                return(new GenericCommandResult(false, "Projeto não encontrado", command.Notifications));
            }

            var developerDb = await _developerRepository.GetByIdAsync(command.DeveloperId);

            if (developerDb == null)
            {
                return(new GenericCommandResult(false, "Desenvolvedor não encontrado", command.Notifications));
            }

            var developerProject = new DeveloperProject
            {
                Project   = projectDb,
                Developer = developerDb
            };

            projectDb.DeveloperProjects.Add(developerProject);

            await _projectRepository.UpdateAsync(projectDb);

            return(new GenericCommandResult(true, "Desenvolvedor adicionado ao projeto com sucesso", new
            {
                DeveloperName = developerDb.Name,
                ProjectName = projectDb.Name
            }));
        }
示例#2
0
 public async Task <GenericCommandResult> AddDeveloperInProject([FromBody] AddDeveloperInProjectCommand command, [FromServices] ProjectHandler handler)
 {
     return((GenericCommandResult)await handler.Handle(command));
 }