Exemple #1
0
        public static Produto BuscarPorId(int id)
        {
            Produto produto;

            try
            {
                var file = File.ReadAllText("./Config/Info.json");
                var conf = JObject.Parse(file);

                var channel = new Channel(conf["nomes"]["host"] + ":" + conf["nomes"]["porta"], ChannelCredentials.Insecure);

                var client = new ServidorNomes.Nomes.NomesClient(channel);
                var req    = new ServidorNomes.ServicoRequest();
                req.Servico = "Produto";

                var rep = client.ObterServico(req);

                if (rep.Error != 0)
                {
                    throw new Exception("Falha ao obter produtox!\n" + rep.Message);
                }

                //Consegui o servico..

                channel = new Channel(rep.Servico.Host + ":" + rep.Servico.Porta, ChannelCredentials.Insecure);

                var clientP = new ServidorProdutos.Produtos.ProdutosClient(channel);
                var request = new ServidorProdutos.ModoBusca();
                request.Tipo = ServidorProdutos.ModoBusca.Types.Modo.Id;
                request.Id   = id;

                var resp = clientP.Buscar(request);

                if (resp.Response.Error != 0)
                {
                    throw new Exception("Falha ao obter produtoy!\n" + resp.Response.Message + " " + id.ToString());
                }

                produto = new Produto(resp.Produtos[0]);
            }
            catch (Exception e)
            {
                throw e;
            }

            return(produto);
        }
Exemple #2
0
        static void Main(string[] args)
        {
            var       file    = File.ReadAllText("./Config/Info.json");
            const int off_set = 10;

            try
            {
                var conf = JObject.Parse(file);

                var hostAut  = conf["autenticacao"]["host"].ToString();
                var portaAut = Int32.Parse(conf["autenticacao"]["porta"].ToString());

                Server server = new Server
                {
                    Services = { Autenticacao.BindService(new Servidor()) },
                    Ports    = { new ServerPort(hostAut, portaAut, ServerCredentials.Insecure) }
                };

                Server serverUsuario = new Server
                {
                    Services = { Usuarios.BindService(new ServidorUsuario()) },
                    Ports    = { new ServerPort(hostAut, portaAut + off_set, ServerCredentials.Insecure) }
                };

                server.Start();
                serverUsuario.Start();

                Console.WriteLine("Servidor de Autenticacao Ativo!");

                Console.WriteLine("Conectando com o servidor de nomes para registrar servico!");

                var hostNome = conf["nomes"]["host"].ToString();
                var portNome = conf["nomes"]["porta"].ToString();

                var channel = new Channel(hostNome + ":" + portNome, ChannelCredentials.Insecure);

                var client = new ServidorNomes.Nomes.NomesClient(channel);

                RegistroServico registro = new RegistroServico();
                registro.Host    = hostAut;
                registro.Porta   = portaAut;
                registro.Servico = "Autenticacao";

                registro.Estado         = new Estado();
                registro.Estado.Cpu     = Diagnostico.ObterUsoCpu();
                registro.Estado.Memoria = Diagnostico.ObterUsoMemoria();

                var resp = client.Cadastrar(registro);

                if (resp.Error != 0)
                {
                    throw new Exception("Erro ao cadastrar servico!\n" + resp.Message);
                }

                Console.WriteLine(resp.Message);

                Console.WriteLine("Levantando listener udp para aguardar conexoes de confirmacao de ativo");
                Socket     receiver = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
                UdpClient  listener = new UdpClient(portaAut);
                IPEndPoint groupEP  = new IPEndPoint(IPAddress.Any, Convert.ToInt32(portaAut));

                while (true)
                {
                    Console.WriteLine("Tentando receber algo");
                    byte[] x = listener.Receive(ref groupEP);
                    Console.WriteLine("Recebi conexao!");
                    string mess = Encoding.ASCII.GetString(x);

                    IPAddress broadcast = IPAddress.Parse(hostNome);

                    byte[]     sendbuf = Encoding.ASCII.GetBytes("Servidor Ativo");
                    IPEndPoint ep      = new IPEndPoint(broadcast, Convert.ToInt32(portNome));

                    receiver.SendTo(sendbuf, ep);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Erro ocorrido ao iniciar servidor de autenticacao!\n" + e.Message);
            }
        }
Exemple #3
0
        public override Task <AutResponse> Autenticar(ServidorUsuarios.RegistroUsuario registroUsuario, ServerCallContext context)
        {
            return(Task.Run(() =>
            {
                var file = File.ReadAllText("./Config/Info.json");
                var response = new AutResponse();

                try
                {
                    AtualizarServidor();
                    var conf = JObject.Parse(file);
                    var hostNome = conf["nomes"]["host"].ToString();
                    var portNome = conf["nomes"]["porta"].ToString();

                    var channel = new Channel(hostNome + ":" + portNome, ChannelCredentials.Insecure);
                    var clientNomes = new ServidorNomes.Nomes.NomesClient(channel);
                    var req = new ServidorNomes.ServicoRequest {
                        Servico = "Usuario"
                    };
                    var resp = clientNomes.ObterServico(req);

                    if (resp.Error != 0)
                    {
                        throw new Exception("Falha ao tentar autenticar2.\n" + resp.Message);
                    }

                    channel = new Channel(resp.Servico.Host + ":" + resp.Servico.Porta, ChannelCredentials.Insecure);
                    var clientUsuarios = new ServidorUsuarios.Usuarios.UsuariosClient(channel);


                    var mode = new ServidorUsuarios.ModoBusca
                    {
                        Tipo = ServidorUsuarios.ModoBusca.Types.Modo.Nome,
                        Login = registroUsuario.Login
                    };

                    var reg = clientUsuarios.Buscar(mode);

                    if (reg.Message.Error != 0)
                    {
                        throw new Exception("Falha ao autenticar1.\n" + reg.Message.Message);
                    }

                    if (reg.Usuarios.Count == 0)
                    {
                        throw new Exception("Usuario invalido!");
                    }

                    if (registroUsuario.Senha != reg.Usuarios[0].Senha)
                    {
                        throw new Exception("Falha ao autenticar, a senha eh invalida!");
                    }

                    response.Error = 0;
                    response.Message = "Autenticado com sucesso!";


                    response.Rusuario = reg.Usuarios[0];
                }catch (Exception e) {
                    response.Error = 1;
                    response.Message = e.Message + " eu nao toco raul";

                    return response;
                }

                return response;
            }));
        }