コード例 #1
0
        public async Task <ICommandResult> Handle(RemoveDeveloperFromProjectCommand 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 developersProjects = projectDb.DeveloperProjects;

            DeveloperProject founded = null;

            foreach (var developerProject in developersProjects)
            {
                if (developerProject.ProjectId == command.ProjectId && developerProject.DeveloperId == command.DeveloperId)
                {
                    founded = developerProject;
                }
            }

            await _projectRepository.RemoveDeveloperFromProject(founded);

            return(new GenericCommandResult(true, "Desenvolvedor removido do projeto com sucesso", new
            {
                DeveloperName = developerDb.Name,
                ProjectName = projectDb.Name
            }));
        }
コード例 #2
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
            }));
        }
コード例 #3
0
 public async Task RemoveDeveloperFromProject(DeveloperProject developerProject)
 {
     _context.DeveloperProject.Remove(developerProject);
     await SaveChangesAsync();
 }