Ejemplo n.º 1
0
        /// <summary>
        /// Atualiza uma única entidade na posição respectiva na interface.
        /// </summary>
        /// <param name="entidade">Entidade para atualizar na interface.</param>
        /// <param name="coordenadas">Posição na interface.</param>
        private void AtualizaEntidade(Entidade entidade, Coordenadas coordenadas)
        {
            if (entidade is Lixo)
            {
                EntidadeUC entidadeUc = GetEntidade(coordenadas);
                Lixo       lixo       = entidade as Lixo;

                if (lixo.Tipo == TipoLixo.SECO)
                {
                    entidadeUc.Tipo = Entidades.LIXO_SECO;
                }
                else if (lixo.Tipo == TipoLixo.ORGANICO)
                {
                    entidadeUc.Tipo = Entidades.LIXO_ORGANICO;
                }
            }
            else if (entidade is Lixeira)
            {
                EntidadeUC entidadeUc = GetEntidade(coordenadas);
                Lixeira    lixeira    = entidade as Lixeira;

                if (lixeira.Tipo == TipoLixo.SECO)
                {
                    entidadeUc.Tipo        = Entidades.LIXEIRA_SECO;
                    entidadeUc.QtdLixoSeco = lixeira.Lixos.Count;
                    entidadeUc.CapacidadeMaximaLixoSeco = lixeira.CapacidadeMaxima;
                }
                else if (lixeira.Tipo == TipoLixo.ORGANICO)
                {
                    entidadeUc.Tipo            = Entidades.LIXEIRA_ORGANICO;
                    entidadeUc.QtdLixoOrganico = lixeira.Lixos.Count;
                    entidadeUc.CapacidadeMaximaLixoOrganico = lixeira.CapacidadeMaxima;
                }
            }
            else if (entidade is Agente)
            {
                EntidadeUC entidadeUc = GetEntidade(coordenadas);
                Agente     agente     = entidade as Agente;

                entidadeUc.Tipo        = Entidades.AGENTE;
                entidadeUc.QtdLixoSeco = agente.SacoLixoSeco.Count;
                entidadeUc.CapacidadeMaximaLixoSeco     = agente.CapacidadeMaximaLixoSeco;
                entidadeUc.QtdLixoOrganico              = agente.SacoLixoOrganico.Count;
                entidadeUc.CapacidadeMaximaLixoOrganico = agente.CapacidadeMaximaLixoOrganico;
                entidadeUc.NumeroAgente = agente.Numero;
            }
            else if (entidade is Multiplo)
            {
                EntidadeUC entidadeUc = GetEntidade(coordenadas);

                entidadeUc.EntidadesMultiplo = (entidade as Multiplo).Entidades;
                entidadeUc.Tipo = Entidades.MULTIPLO;
            }
            else
            {
                EntidadeUC entidadeUc = GetEntidade(coordenadas);

                entidadeUc.Tipo = Entidades.NENHUM;
            }
        }
        private void btnBuscar_Click(object sender, EventArgs e)
        {
            dataGridView2.Rows.Clear();
            DateTime dt = new DateTime();

            dt = DateTime.Parse(dtpData.Text);
            String data = dt.ToShortDateString();


            List <Lixo> lixos = new List <Lixo>();

            for (int i = 0; i < (dataGridView1.Rows.Count) - 1; i++)
            {
                if ((dataGridView1.Rows[i].Cells[2].Value.ToString())[0].Equals(data[0]) && (dataGridView1.Rows[i].Cells[2].Value.ToString())[1].Equals(data[1]) && (dataGridView1.Rows[i].Cells[2].Value.ToString())[3].Equals(data[3]) && (dataGridView1.Rows[i].Cells[2].Value.ToString())[4].Equals(data[4]) && (dataGridView1.Rows[i].Cells[2].Value.ToString())[6].Equals(data[6]) && (dataGridView1.Rows[i].Cells[2].Value.ToString())[7].Equals(data[7]) && (dataGridView1.Rows[i].Cells[2].Value.ToString())[8].Equals(data[8]) && (dataGridView1.Rows[i].Cells[2].Value.ToString())[9].Equals(data[9]))
                {
                    Lixo l = new Lixo();
                    l.Nome_Cliente   = (dataGridView1.Rows[i].Cells[0].Value.ToString());
                    l.Produto        = (dataGridView1.Rows[i].Cells[1].Value.ToString());
                    l.Data_Pagamento = (dataGridView1.Rows[i].Cells[2].Value.ToString());
                    l.Valor_Pago     = Convert.ToDecimal(dataGridView1.Rows[i].Cells[3].Value.ToString());
                    l.Cod_Lixeira    = Convert.ToInt32(dataGridView1.Rows[i].Cells[4].Value.ToString());
                    lixos.Add(l);
                }
            }
            for (int x = 0; x < lixos.Count; x++)
            {
                dataGridView2.Rows.Add(new object[] { lixos[x].Nome_Cliente, lixos[x].Produto, lixos[x].Data_Pagamento, lixos[x].Valor_Pago, lixos[x].Cod_Lixeira });
            }
        }
Ejemplo n.º 3
0
        public static void Reciclar(Lixo lixo)
        {
            string Papelao = new Papelao();



            Type tipoLixo = lixo.GetType().GetInterfaces().FirstOrDefault();

            if (tipoLixo.Equals(typeof(IPapel)))
            {
                IPapel lixoConvertido = (IPapel)lixo;
                Console.BackgroundColor = ConsoleColor.Blue;
                System.Console.WriteLine($"{lixoConvertido.ReciclarFeitoPapel()} deve ir para a lixeira Azul");
                Console.ResetColor();
            }
            else if (tipoLixo.Equals(typeof(IMetal)))
            {
                IMetal lixoConvertido = (IMetal)lixo;
                Console.BackgroundColor = ConsoleColor.Yellow;
                Console.ForegroundColor = ConsoleColor.Black;
                System.Console.WriteLine($"{lixoConvertido.ReciclarFeitoMetal()} deve ir para a lixeira Amarela");
                Console.ResetColor();
            }
            else if (tipoLixo.Equals(typeof(IPlastico)))
            {
                IPlastico lixoConvertido = (IPlastico)lixo;
                Console.BackgroundColor = ConsoleColor.Red;
                System.Console.WriteLine($"{lixoConvertido.ReciclarFeitoPlastico()} deve ir para a lixeira Vermelha");
                Console.ResetColor();
            }
            else if (tipoLixo.Equals(typeof(IVidro)))
            {
                IVidro lixoConvertido = (IVidro)lixo;
                Console.BackgroundColor = ConsoleColor.Green;
                System.Console.WriteLine($"{lixoConvertido.ReciclarFeitoVidro()} deve ir para a lixeira Verde");
                Console.ResetColor();
            }
            else if (tipoLixo.Equals(typeof(IOrganico)))
            {
                IOrganico lixoConvertido = (IOrganico)lixo;
                Console.ForegroundColor = ConsoleColor.Green;
                Console.BackgroundColor = ConsoleColor.Black;
                System.Console.WriteLine($"{lixoConvertido.JogarNaComposteira()} deve ir para a Composteira");
                Console.ResetColor();
            }
            else if (tipoLixo.Equals(typeof(IIndefinido)))
            {
                IIndefinido lixoConvertido = (IIndefinido)lixo;
                Console.ForegroundColor = ConsoleColor.Black;
                Console.BackgroundColor = ConsoleColor.Gray;
                System.Console.WriteLine($"{lixoConvertido.ProcurarOQueFazer()} deve ir para o descarte especial");
                Console.ResetColor();
            }
            else
            {
                System.Console.WriteLine("Tipo não identificado!");
            }
            System.Console.WriteLine("Aperte ENTER para voltar ao menu principal");
            Console.ReadLine();
        }
Ejemplo n.º 4
0
    public List <Lixo> ListarLixo()
    {
        try
        {
            AbrirConexao();
            cmd = new SqlCommand("Select * from Lixeira", con);


            Dr = cmd.ExecuteReader();
            List <Lixo> lista = new List <Lixo>();
            while (Dr.Read())
            {
                Lixo l = new Lixo();

                l.Nome_Cliente   = Convert.ToString(Dr["Nome_Cliente"]);
                l.Produto        = Convert.ToString(Dr["Produto"]);
                l.Data_Pagamento = Convert.ToString(Dr["Data_Pagamento"]);
                l.Valor_Pago     = Convert.ToDecimal(Dr["Valor_Pago"]);
                l.Cod_Lixeira    = Convert.ToInt32(Dr["Cod_Lixeira"]);


                lista.Add(l);
            }
            return(lista);
        }
        catch (Exception ex)
        {
            throw new Exception("erro ao listar todos" + ex);
        }
        finally
        {
            FecharConexao();
        }
    }
Ejemplo n.º 5
0
        public static void Reciclar(Lixo lixo)                               // Lixo é a superclasse (classe pai) para as outras classes herdarem dele e entrarem no dicionario
        {
            Type tipoLixo = lixo.GetType().GetInterfaces().FirstOrDefault(); // a variavel tipolixo verifica qual o tipo do lixo informado pelo usuario, atraves do Get.Type.. GetInterfaces serve pa

            if (tipoLixo.Equals(typeof(IPapel)))                             // typeof compara com o type tipolixo com o valor de Ipapel.. Equals serve para verificar se o tipolixo é igual o tipo dentro da interface IPapel
            {
                IPapel lixoConvertido = (IPapel)lixo;                        // tecnica casting.. a variavel lixo é inserida dentro da interface IPapel para afirmar que o lixo é um papel e use o método ReciclarFeitoPapel
                Console.BackgroundColor = ConsoleColor.Blue;
                System.Console.WriteLine($"{lixoConvertido.ReciclarFeitoPapel()} deve ir para a lixeira Azul");
                Console.ResetColor();
            }
            else if (tipoLixo.Equals(typeof(IMetal)))
            {
                IMetal lixoConvertido = (IMetal)lixo;
                Console.BackgroundColor = ConsoleColor.Yellow;
                Console.ForegroundColor = ConsoleColor.Black;
                System.Console.WriteLine($"{lixoConvertido.ReciclarFeitoMetal()} deve ir para a lixeira Amarela");
                Console.ResetColor();
            }
            else if (tipoLixo.Equals(typeof(IPlastico)))
            {
                IPlastico lixoConvertido = (IPlastico)lixo;
                Console.BackgroundColor = ConsoleColor.Red;
                System.Console.WriteLine($"{lixoConvertido.ReciclarFeitoPlastico()} deve ir para a lixeira Vermelha");
                Console.ResetColor();
            }
            else if (tipoLixo.Equals(typeof(IVidro)))
            {
                IVidro lixoConvertido = (IVidro)lixo;
                Console.BackgroundColor = ConsoleColor.Green;
                System.Console.WriteLine($"{lixoConvertido.ReciclarFeitoVidro()} deve ir para a lixeira Verde");
                Console.ResetColor();
            }
            else if (tipoLixo.Equals(typeof(IOrganico)))
            {
                IOrganico lixoConvertido = (IOrganico)lixo;
                Console.ForegroundColor = ConsoleColor.Green;
                Console.BackgroundColor = ConsoleColor.Black;
                System.Console.WriteLine($"{lixoConvertido.JogarNaComposteira()} deve ir para a Composteira");
                Console.ResetColor();
            }
            else if (tipoLixo.Equals(typeof(IIndefinido)))
            {
                IIndefinido lixoConvertido = (IIndefinido)lixo;
                Console.ForegroundColor = ConsoleColor.Black;
                Console.BackgroundColor = ConsoleColor.Gray;
                System.Console.WriteLine($"{lixoConvertido.ProcurarOQueFazer()} deve ir para o descarte especial");
                Console.ResetColor();
            }
            else
            {
                System.Console.WriteLine("Tipo não identificado!");
            }
            System.Console.WriteLine("Aperte ENTER para voltar ao menu principal");
            Console.ReadLine();
        }
Ejemplo n.º 6
0
        public string percorrerLista()
        {
            Lixo aux = sentinela;

            while (aux.proximo != null)
            {
                aux = aux.proximo;
                return(aux.racaoCriada + " - " + aux.evento);
            }
            return(null);
        }
Ejemplo n.º 7
0
        private static void Reciclar(Lixo lixo)
        {
            Type tipoLixo = lixo.GetType().GetInterface("IAzul");

            if (tipoLixo.Equals(typeof(IAzul)))
            {
                IAzul lixoConvertido = (IAzul)lixo;
                Console.BackgroundColor = ConsoleColor.Blue;
                System.Console.WriteLine($"{lixoConvertido.MensagemReciclagemAzul()} DEVE IR PARA A LIXEIRA AZUL");
                Console.ResetColor();
            }
        }
Ejemplo n.º 8
0
        public static void Reciclar(Lixo lixo)
        {
            Type tipoLixo = lixo.GetType().GetInterfaces().FirstOrDefault();

            if (tipoLixo.Equals(typeof(IPapel)))
            {
                IPapel lixoConvertido = (IPapel)lixo;
                Console.BackgroundColor = ConsoleColor.Blue;
                System.Console.WriteLine($"{lixoConvertido.ReciclarPapel()} deve ir para a lixeira Azul.");
                Console.ResetColor();
            }
            else if (tipoLixo.Equals(typeof(IPlastico)))
            {
                IPlastico lixoConvertido = (IPlastico)lixo;
                Console.BackgroundColor = ConsoleColor.Red;
                System.Console.WriteLine($"{lixoConvertido.ReciclarPlastico()} deve ir para a lixeira Vermelha.");
                Console.ResetColor();
            }
            else if (tipoLixo.Equals(typeof(IMetal)))
            {
                IMetal lixoConvertido = (IMetal)lixo;
                Console.ForegroundColor = ConsoleColor.Black;
                Console.BackgroundColor = ConsoleColor.Yellow;
                System.Console.WriteLine($"{lixoConvertido.ReciclarMetal()} deve ir para a lixeira Amarela.");
                Console.ResetColor();
            }
            else if (tipoLixo.Equals(typeof(IVidro)))
            {
                IVidro lixoConvertido = (IVidro)lixo;
                Console.BackgroundColor = ConsoleColor.Green;
                System.Console.WriteLine($"{lixoConvertido.ReciclarVidro()} dever ir para a lixeira Verde.");
                Console.ResetColor();
            }
            else if (tipoLixo.Equals(typeof(IOrganico)))
            {
                IOrganico lixoConvertido = (IOrganico)lixo;
                Console.BackgroundColor = ConsoleColor.DarkGreen;
                System.Console.WriteLine($"{lixoConvertido.MandarCompostagem()} deve ir para a composteira.");
                Console.ResetColor();
            }
            else if (tipoLixo.Equals(typeof(IDescarteEspecial)))
            {
                IDescarteEspecial lixoConvertido = (IDescarteEspecial)lixo;
                Console.BackgroundColor = ConsoleColor.DarkGray;
                System.Console.WriteLine($"{lixoConvertido.ReciclarEspecial()} deve ir para o descarte especial.");
            }
            else
            {
                System.Console.WriteLine("Lixo não identificado");
            }
        }
Ejemplo n.º 9
0
        public void insereOcorrencia(string ocorrencia)
        {
            Lixo aux = sentinela;

            while (aux.proximo != null)
            {
                aux = aux.proximo;
            }
            Lixo novo = new Lixo();

            novo.insereEvento(ocorrencia);
            novo.novaRacao();
            aux.proximo = novo;
        }
Ejemplo n.º 10
0
        static void Main(string[] args)
        {
            int opcao = 0;
            int itens = Lixeira.lixos.Count;

            do
            {
                opcao = ExibeMenu();
                if ((opcao >= 1) && (opcao <= itens))
                {
                    Lixo lixo = Lixeira.lixos[opcao];
                    LataDeLixo(lixo);
                    Console.ReadLine();
                }
            } while (opcao != 0);
        }
Ejemplo n.º 11
0
        public static void Reciclar(Lixo lixo)
        {
            Type Tipolixo = lixo.GetType().GetInterfaces().FirstOrDefault();

            if (Tipolixo.Equals(typeof(PretoOrganico)))
            {
                //Casting = Método de conversão. A classe LIXO não "enxerga" o que tem dentro da classe CascaBanana, e por isso, indicamos para ela o que queremos.
                PretoOrganico organico = (PretoOrganico)lixo;  //"Eu garanto que lixo contem PretoOrganico."
                System.Console.WriteLine(organico.Composteira() + " foi levado para a COMPOSTAGEM.");
                Console.ReadLine();
            }
            else if (Tipolixo.Equals(typeof(VerdeVidro)))
            {
                VerdeVidro vidro = (VerdeVidro)lixo;
                System.Console.WriteLine(vidro.ReciclarVidro() + " foi jogado no lixo VERDE.");
                Console.ReadLine();
            }
            else if (Tipolixo.Equals(typeof(AzulPapel)))
            {
                AzulPapel papel = (AzulPapel)lixo;
                System.Console.WriteLine(papel.ReciclarPapel() + " foi jogado no lixo AZUL.");
                Console.ReadLine();
            }
            else if (Tipolixo.Equals(typeof(VermelhoPlastico)))
            {
                VermelhoPlastico plastico = (VermelhoPlastico)lixo;
                System.Console.WriteLine(plastico.ReciclarPlastico() + " foi jogado no lixo VERMELHO.");
                Console.ReadLine();
            }
            else if (Tipolixo.Equals(typeof(MetalAmarelo)))
            {
                MetalAmarelo metal = (MetalAmarelo)lixo;
                System.Console.WriteLine(metal.ReciclarMetal() + " foi jogado no lixo AMARELO.");
                Console.ReadLine();
            }
            else if (Tipolixo.Equals(typeof(CinzaNaoReciclavel)))
            {
                CinzaNaoReciclavel especial = (CinzaNaoReciclavel)lixo;
                System.Console.WriteLine(especial.DescarteEspecial() + " foi jogado no lixo de DESCARTES ESPECIAIS (CINZA).");
                Console.ReadLine();
            }
        }
Ejemplo n.º 12
0
        static void LataDeLixo(Lixo lixo)
        {
            var lixoInterface = lixo.GetType().GetInterfaces().GetValue(0);

            if (lixoInterface.Equals(typeof(IVidro)))
            {
                IVidro material = (IVidro)lixo;
                string mensagem = $"{material.Reciclar()} deve ir para a lixeira Verde";
                ImprimeMensagem(ConsoleColor.Green, ConsoleColor.White, mensagem);
            }
            else if (lixoInterface.Equals(typeof(IPlastico)))
            {
                IPlastico material = (IPlastico)lixo;
                string    mensagem = $"{material.Reciclar()} deve ir para a lixeira Vermelha";
                ImprimeMensagem(ConsoleColor.Red, ConsoleColor.White, mensagem);
            }
            else if (lixoInterface.Equals(typeof(IPapel)))
            {
                IPapel material = (IPapel)lixo;
                string mensagem = $"{material.Reciclar()} deve ir para a lixeira Azul";
                ImprimeMensagem(ConsoleColor.Blue, ConsoleColor.White, mensagem);
            }
            else if (lixoInterface.Equals(typeof(IOrganico)))
            {
                IOrganico material = (IOrganico)lixo;
                string    mensagem = $"{material.Reciclar()} deve ir para a lixeira Marrom";
                ImprimeMensagem(ConsoleColor.Black, ConsoleColor.White, mensagem);
            }
            else if (lixoInterface.Equals(typeof(IMetal)))
            {
                IMetal material = (IMetal)lixo;
                string mensagem = $"{material.Reciclar()} deve ir para a lixeira Amarela";
                ImprimeMensagem(ConsoleColor.Yellow, ConsoleColor.Black, mensagem);
            }
            else if (lixoInterface.Equals(typeof(IIndefinido)))
            {
                IIndefinido material = (IIndefinido)lixo;
                string      mensagem = $"{material.Reciclar()} deve ir para a lixeira Cinza";
                ImprimeMensagem(ConsoleColor.Gray, ConsoleColor.White, mensagem);
            }
        }
Ejemplo n.º 13
0
    public void gravarlixo(Lixo l)
    {
        try
        {
            AbrirConexao();
            cmd = new SqlCommand("insert into Lixeira (Nome_Cliente,Produto,Data_Pagamento,Valor_Pago) values (@v1,@v2,@v3,@v4)", con);
            cmd.Parameters.AddWithValue("@v1", l.Nome_Cliente);
            cmd.Parameters.AddWithValue("@v2", l.Produto);
            cmd.Parameters.AddWithValue("@v3", l.Data_Pagamento);
            cmd.Parameters.AddWithValue("@v4", l.Valor_Pago);


            cmd.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            throw new Exception("Erro ao gravar cliente: " + ex.Message);
        }
        finally
        {
            FecharConexao();
        }
    }
Ejemplo n.º 14
0
 public static void Reciclar(Lixo lixo)
Ejemplo n.º 15
0
        public ListaLixo()
        {
            Lixo x = new Lixo();

            sentinela = x;
        }
Ejemplo n.º 16
0
        /// <summary>
        /// Aloca as entidades no ambiente conforme a quantidade requerida.
        /// </summary>
        /// <param name="qtdAgentes">Quantidade de agentes que estarão no ambiente.</param>
        /// <param name="qtdLixoOrganico">Quantidade de lixos orgânicos que estarão no ambiente.</param>
        /// <param name="qtdLixeiraOrganico">Quantidade de lixeiras de lixo orgânico que estarão no ambiente.</param>
        /// <param name="qtdLixoSeco">Quantidade de lixos secos que estarão no ambiente.</param>
        /// <param name="qtdLixeiraSeco">Quantidade de lixeiras de lixo seco que estarão no ambiente.</param>
        /// <returns>Se conseguiu alocar tudo com sucesso.</returns>
        private bool AlocaEntidadesAmbiente(int qtdAgentes, int qtdLixoOrganico, int qtdLixeiraOrganico, int qtdLixoSeco, int qtdLixeiraSeco)
        {
            for (int i = 0; i < qtdLixeiraOrganico; i++)
            {
                Lixeira lixeira = AlocaEntidadeLugarSeguro(Entidades.LIXEIRA_ORGANICO) as Lixeira;
                if (lixeira == null)
                {
                    return(false);
                }
            }

            for (int i = 0; i < qtdLixeiraSeco; i++)
            {
                Lixeira lixeira = AlocaEntidadeLugarSeguro(Entidades.LIXEIRA_SECO) as Lixeira;
                if (lixeira == null)
                {
                    return(false);
                }
            }

            for (int i = 0; i < qtdLixoOrganico; i++)
            {
                Lixo lixo = AlocaEntidadeLugarSeguro(Entidades.LIXO_ORGANICO) as Lixo;
                if (lixo == null)
                {
                    return(false);
                }
            }

            for (int i = 0; i < qtdLixoSeco; i++)
            {
                Lixo lixo = AlocaEntidadeLugarSeguro(Entidades.LIXO_SECO) as Lixo;
                if (lixo == null)
                {
                    return(false);
                }
            }

            List <Lixeira> lixeirasOrganico = Ambiente.Lixeiras.FindAll(l => l.Tipo == TipoLixo.ORGANICO);
            List <Lixeira> lixeirasSeco     = Ambiente.Lixeiras.FindAll(l => l.Tipo == TipoLixo.SECO);

            while (qtdLixoOrganico != 0)
            {
                foreach (Lixeira lixeira in lixeirasOrganico)
                {
                    lixeira.CapacidadeMaxima++;

                    if (--qtdLixoOrganico == 0)
                    {
                        break;
                    }
                }
            }
            while (qtdLixoSeco != 0)
            {
                foreach (Lixeira lixeira in lixeirasSeco)
                {
                    lixeira.CapacidadeMaxima++;

                    if (--qtdLixoSeco == 0)
                    {
                        break;
                    }
                }
            }

            for (int i = 0; i < qtdAgentes; i++)
            {
                Agente agente;

                agente = AlocaEntidadeLugarSeguro(Entidades.AGENTE) as Agente;
                if (agente == null)
                {
                    return(false);
                }
                agente.CapacidadeMaximaLixoOrganico = 2;
                agente.CapacidadeMaximaLixoSeco     = 2;
            }

            return(true);
        }
Ejemplo n.º 17
0
 public static void Reciclar(Lixo lixo) // continuaçao da criaçao da variávell
 {
 }
Ejemplo n.º 18
0
        public static void Reciclar(Lixo lixo)
        {
            Type tipoLixo = lixo.GetType().GetInterfaces().FirstOrDefault();

            if (tipoLixo.Equals(typeof(IPapel)))
            {
                IPapel lixoConvertido = (IPapel)lixo;
                System.Console.WriteLine();
                Console.BackgroundColor = ConsoleColor.Blue;
                Console.ForegroundColor = ConsoleColor.White;
                System.Console.WriteLine($"{lixoConvertido.LataAzul()} deve ir para a lixeira Azul");
                Console.ResetColor();
            }

            else if (tipoLixo.Equals(typeof(IMetal)))
            {
                IMetal lixoConvertido = (IMetal)lixo;
                System.Console.WriteLine();
                Console.BackgroundColor = ConsoleColor.Yellow;
                Console.ForegroundColor = ConsoleColor.Black;
                System.Console.WriteLine($"{lixoConvertido.LataAmarela()} deve ir para a lixeira Amarela");
                Console.ResetColor();
            }

            else if (tipoLixo.Equals(typeof(IPlastico)))
            {
                IPlastico lixoConvertido = (IPlastico)lixo;
                System.Console.WriteLine();
                Console.BackgroundColor = ConsoleColor.Red;
                Console.ForegroundColor = ConsoleColor.Black;
                System.Console.WriteLine($"{lixoConvertido.LataVermelha()} deve ir para a lixeira Vermelha");
                Console.ResetColor();
            }

            else if (tipoLixo.Equals(typeof(IVidro)))
            {
                IVidro lixoConvertido = (IVidro)lixo;
                System.Console.WriteLine();
                Console.BackgroundColor = ConsoleColor.Green;
                Console.ForegroundColor = ConsoleColor.Black;
                System.Console.WriteLine($"{lixoConvertido.LataVerde()} deve ir para a lixeira Verde");
                Console.ResetColor();
            }

            else if (tipoLixo.Equals(typeof(INaoReciclavel)))
            {
                INaoReciclavel lixoConvertido = (INaoReciclavel)lixo;
                System.Console.WriteLine();
                Console.BackgroundColor = ConsoleColor.DarkGray;
                Console.ForegroundColor = ConsoleColor.White;
                System.Console.WriteLine($"{lixoConvertido.LataCinza()} deve ir para a lixeira Cinza");
                Console.ResetColor();
            }

            else
            {
                System.Console.WriteLine();
                System.Console.WriteLine("Tipo não identificado!");
            }

            System.Console.WriteLine("Aperte ENTER para voltar ao menu principal");
            Console.ReadLine();
        }
        private void btnDeletarItem_Click(object sender, EventArgs e)
        {
            //trecho de proteção
            PessoaDAL     pd1   = new PessoaDAL();
            List <Divida> lista = new List <Divida>();

            lista = pd1.ListarDividas(Convert.ToInt32(lblCodigo.Text));

            if (lista.Count == 0 || nudDeletaItem.Text.Equals(""))
            {
                MessageBox.Show("Esse código não é de nenhuma dívida acima, por favor digite novamente o CÓDIGO PARA DELETAR do item desejado");
                return;
            }

            int  x = 0;
            bool l = false;

            while (l == false)
            {
                if (lista[x].Cod_deleta == int.Parse(nudDeletaItem.Text))
                {
                    l = true;
                }
                else
                {
                    x++;
                    if (x == lista.Count)
                    {
                        MessageBox.Show("O CODIGO DIGITADO NÃO CORRESPONDE A NENHUMA DIVIDA DESSE CLIENTE LISTADO ACIMA");
                        return;
                    }
                }
            }

            //inserindo na lixeira

            for (int a = 0; a < (DTVdividas.Rows.Count) - 1; a++)
            {
                if (int.Parse(DTVdividas.Rows[a].Cells[5].Value.ToString()) == int.Parse(nudDeletaItem.Text))
                {
                    Lixo lixo = new Lixo();
                    lixo.Nome_Cliente   = lblnome.Text;
                    lixo.Produto        = DTVdividas.Rows[a].Cells[1].Value.ToString();
                    lixo.Data_Pagamento = lblhora.Text;
                    lixo.Valor_Pago     = Convert.ToDecimal(DTVdividas.Rows[a].Cells[4].Value.ToString());

                    pd1.gravarlixo(lixo);
                }
            }
            //------------------------------------------------------------------------------------------------------------


            //começo
            int       Cod_deleta = int.Parse(nudDeletaItem.Text);
            PessoaDAL pd         = new PessoaDAL();

            pd.DeletaItem(Cod_deleta);

            lista = pd.ListarDividas(Convert.ToInt32(lblCodigo.Text));
            //relistar
            DTVdividas.Rows.Clear();


            Decimal  valortot   = new Decimal();
            DateTime menordata  = Convert.ToDateTime("9/9/9999");
            Decimal  valorJuros = new Decimal(); //serve para calcular os juros

            for (int i = 0; i < lista.Count; i++)
            {
                DTVdividas.Rows.Add(new object[] { lista[i].Quantidade, lista[i].Produto, lista[i].Data, lista[i].Comprador, lista[i].preco, lista[i].Cod_deleta });
                valortot = (valortot) + (lista[i].preco);

                String dia = (lista[i].Data)[0] + "" + "" + (lista[i].Data)[1];
                String mes = (lista[i].Data)[3] + "" + "" + (lista[i].Data)[4];
                String ano = (lista[i].Data)[6] + "" + "" + (lista[i].Data)[7] + (lista[i].Data)[8] + (lista[i].Data)[9];

                int dia1 = int.Parse(dia);
                int mes1 = int.Parse(mes); // conversão para inteiro "O -1 É APENAS PARA TESTES"
                int ano1 = int.Parse(ano);

                String diaatual = (lblhora.Text[0] + "" + "" + lblhora.Text[1]);
                String mesatual = (lblhora.Text[3] + "" + "" + lblhora.Text[4]);
                String anoatual = (lblhora.Text[6] + "" + "" + lblhora.Text[7] + lblhora.Text[8] + lblhora.Text[9]);

                int diaatual1 = int.Parse(diaatual);
                int mesatual1 = int.Parse(mesatual);
                int anoatual1 = int.Parse(anoatual);

                TimeSpan date = Convert.ToDateTime(diaatual1 + "/" + mesatual1 + "/" + anoatual1) - Convert.ToDateTime(dia1 + "/" + mes1 + "/" + ano1);

                int totalDias = date.Days;
                if (totalDias >= 30 && totalDias < 60)
                {
                    DTVdividas.Rows[i].Cells[2].Style.BackColor = Color.Yellow;
                    valorJuros = (valorJuros) + (lista[i].preco); //CALCULA SÓ O SOMATORIO DAS DIVIDAS ATRASADAS
                }
                if (totalDias >= 60)
                {
                    DTVdividas.Rows[i].Cells[2].Style.BackColor = Color.Red;
                    valorJuros = (valorJuros) + (lista[i].preco);                   //CALCULA SÓ O SOMATORIO DAS DIVIDAS ATRASADAS
                }
                if (Convert.ToDateTime(dia1 + "/" + mes1 + "/" + ano1) < menordata) // cálculo do juro
                {
                    menordata = Convert.ToDateTime(dia1 + "/" + mes1 + "/" + ano1);
                }
            }
            DateTime dt = new DateTime();                                 //

            dt = DateTime.Now;                                            //
            TimeSpan dateJuros      = dt - Convert.ToDateTime(menordata); // cálculo dos juros baseado na menor data
            int      totalDiasJuros = dateJuros.Days;                     //

            if (totalDiasJuros > 30)
            {
                int    diaspagos          = totalDiasJuros - 30;
                double porcentagemdejuros = (diaspagos * 0.33);

                double juros = Convert.ToDouble(valorJuros) * (porcentagemdejuros / 100);

                lblJuros.Text = Convert.ToString(juros);
            }
            lblsaldodevedor.Text = Convert.ToString(valortot);
            nudDeletaItem.Text   = "";
        }
        private void btnPagamento_Click(object sender, EventArgs e)
        {
            if (nudPagamento.Text.Equals("") || nudPagamento.Text.Equals("0,00"))
            {
                MessageBox.Show("o pagamento não foi digitado ou é igual a 0");
                return;
            }
            Divida d = new Divida();

            d.Cod_divida = int.Parse(lblCodigo.Text);
            d.Quantidade = 1;
            d.Produto    = "resto";
            d.Data       = Convert.ToString(lblhora.Text);
            d.Comprador  = lblnome.Text;
            d.preco      = Decimal.Subtract(Decimal.Parse(lblsaldodevedor.Text), (Decimal.Parse(nudPagamento.Text)));

            PessoaDAL pd = new PessoaDAL();



            if (Decimal.Parse(nudPagamento.Text) > Decimal.Parse(lblsaldodevedor.Text))
            {
                MessageBox.Show("o pagamento é maior que a dívida");
                return;
            }
            //inserindo na lixeira

            for (int a = 0; a < (DTVdividas.Rows.Count) - 1; a++)
            {
                Lixo lixo = new Lixo();
                lixo.Nome_Cliente   = lblnome.Text;
                lixo.Produto        = DTVdividas.Rows[a].Cells[1].Value.ToString();
                lixo.Data_Pagamento = lblhora.Text;
                lixo.Valor_Pago     = Convert.ToDecimal(DTVdividas.Rows[a].Cells[4].Value.ToString());;

                pd.gravarlixo(lixo);
            }
            //------------------------------------------------------------------------------------------------------------

            pd.DeletaDividasDoCliente(d.Cod_divida);
            pd.gravarDivida(d);

            MessageBox.Show("pagamento efetuado com sucesso!");



            //relistar
            DTVdividas.Rows.Clear();

            List <Divida> lista = new List <Divida>();

            lista = pd.ListarDividas(Convert.ToInt32(lblCodigo.Text));

            Decimal valortot = new Decimal();

            if (d.preco == 0) //trecho para não ter um registro "RESTO" de 0
            {
                pd.DeletaDividasDoCliente(d.Cod_divida);
                MessageBox.Show("o cliente pagou todas as suas dívidas");
                nudPagamento.Text = "";
                return;
            }

            for (int i = 0; i < lista.Count; i++) //relistagem
            {
                DTVdividas.Rows.Add(new object[] { lista[i].Quantidade, lista[i].Produto, lista[i].Data, lista[i].Comprador, lista[i].preco, lista[i].Cod_deleta });
                valortot = (valortot) + (lista[i].preco);
            }

            lblsaldodevedor.Text = Convert.ToString(valortot);
            nudPagamento.Text    = "";
        }