public void SalvarUsuarioAtuacao(UsuarioAreaAtuacao areaAtuacao) { var query = "INSERT INTO UsuariosAreasAtuacao (IdUsuario, IdAreaAtuacao) VALUES (:IdUsuario, :IdAreaAtuacao) returning Id into :Id"; var param = new DynamicParameters(); param.Add(name: "Id", value: areaAtuacao.Id, direction: ParameterDirection.Input); param.Add(name: "IdUsuario", value: areaAtuacao.Usuario.Id, direction: ParameterDirection.Input); param.Add(name: "IdAreaAtuacao", value: areaAtuacao.AreaAtuacao.Id, direction: ParameterDirection.Input); _context.Connection.Execute(query, param); // Retorno do id gerado na base //var Id = param.Get<int>("Id"); }
public ICommandResult Handle(CriarUsuarioAtuacaoCommand command) { if (!command.IsValidCommand()) { return(new CommandResult(false, "Por favor, corrigir os campos abaixo", command.Notifications)); } var usuario = _repository.UsuarioBase(command.IdUsuario); if (usuario == null) { return(new CommandResult(false, "O usuario não existe na base de dados", new { })); } var atuacao = _repository.AreaAtuacao(command.IdAreaAtuacao); if (atuacao == null) { return(new CommandResult(false, "A área de atuação não existe na base de dados", new { })); } if (_repository.UsuarioAtuacaoExistente(command.IdUsuario, command.IdAreaAtuacao)) { return(new CommandResult(false, $"O usuário { usuario.Id } - { usuario.Login.Usuario } já está relacionado com a àrea { atuacao.Id } - { atuacao.Titulo }", new { })); } var usuarioAtuacao = new UsuarioAreaAtuacao(usuario, atuacao); AddNotifications(usuarioAtuacao); if (Invalid) { return(new CommandResult(false, "Por favor, corrigir os campos abaixo", Notifications)); } _repository.SalvarUsuarioAtuacao(usuarioAtuacao); return(new CommandResult(true, "Área de atuação cadastrada com sucesso", new { Usuario = usuario.Login.Usuario, Atuacao = $"{ atuacao.Id } - { atuacao.Titulo }" })); }