예제 #1
0
        private void Btn_NovaPergunta_Click_1(object sender, EventArgs e)
        {
            Form frm = new Form_Add_Pergunta_Resposta();

            frm.ShowDialog();
            Buscar();
            CarregarGrid();
        }
예제 #2
0
        void CarregarPergunta()
        {
            Panel_View.Controls.Clear();
            Point      point = new Point(25, 18);
            UsuarioDAL dalus = new UsuarioDAL();
            Usuario    RealizadorPergunta = new Usuario();

            RealizadorPergunta = dalus.Consultar(Atual.Usuario);
            PictureBox FotoUsuario = new PictureBox
            {
                Size     = new Size(92, 64),
                Location = point,
                SizeMode = PictureBoxSizeMode.Zoom
            };

            if (RealizadorPergunta.Foto != null)
            {
                MemoryStream ms = new MemoryStream(RealizadorPergunta.Foto);
                FotoUsuario.Image = Image.FromStream(ms);
            }
            else
            {
                FotoUsuario.Image = Properties.Resources.user__1_;
            }
            Panel_View.Controls.Add(FotoUsuario);
            Label NomeUsuario = new Label
            {
                Text     = RealizadorPergunta.Nome,
                Font     = new Font("Arial", 10),
                AutoSize = true,
                Location = new Point(point.X + FotoUsuario.Size.Width, point.Y)
            };

            Panel_View.Controls.Add(NomeUsuario);
            point.Y += FotoUsuario.Size.Height;
            Label Titulo = new Label
            {
                Text     = Atual.Titulo,
                Font     = new Font("Arial", 20, FontStyle.Bold),
                AutoSize = true,
                Location = point
            };

            Panel_View.Controls.Add(Titulo);
            point.Y += Titulo.Height;
            Label TextoPerg = new Label
            {
                Text     = Atual.Texto,
                Font     = new Font("Arial", 14),
                AutoSize = true,
                Location = point
            };

            Panel_View.Controls.Add(TextoPerg);
            point.Y += Titulo.Height;
            foreach (var item in Atual.Imagem)
            {
                PictureBox Img = new PictureBox
                {
                    Size     = new Size(400, 200),
                    SizeMode = PictureBoxSizeMode.Zoom,
                    Location = point
                };
                MemoryStream ms = new MemoryStream(item._Imagem);
                Img.Image = Image.FromStream(ms);
                Panel_View.Controls.Add(Img);
                point.Y += Img.Size.Height;
            }
            PictureBox Like = new PictureBox
            {
                Size     = new Size(80, 40),
                SizeMode = PictureBoxSizeMode.Zoom,
                Location = point,
                Name     = "L" + Atual.ID.ToString()
            };
            AvaliacaoDAL dalAval = new AvaliacaoDAL();
            Avaliacao    esta    = dalAval.Consultar(UsuarioAtual.ID, Atual.ID, 0);

            if (esta.ID != 0 && esta._Avaliacao)
            {
                Like.Image = Properties.Resources.like_ativo;
            }
            else
            {
                Like.Image = Properties.Resources.like;
            }
            Like.Click += (object sender, EventArgs e) =>
            {
                PictureBox   este      = sender as PictureBox;
                Avaliacao    avaliacao = new Avaliacao();
                AvaliacaoDAL dal       = new AvaliacaoDAL();
                avaliacao = dal.Consultar(UsuarioAtual.ID, Convert.ToInt32(este.Name.Substring(1, este.Name.Length - 1)), 0);
                if (avaliacao.ID == 0)
                {
                    avaliacao = new Avaliacao
                    {
                        Denuncia = false,
                        Pergunta = Atual,
                        Resposta = null,
                        Usuario  = new Usuario {
                            ID = UsuarioAtual.ID
                        },
                        _Avaliacao = true
                    };
                    dal.Inserir(avaliacao);
                }
                else
                {
                    avaliacao._Avaliacao = true;
                    dal.Alterar(avaliacao);
                }
                este.Image = Properties.Resources.like_ativo;
                foreach (var item in pictureBoxesPergunta.Where(x => x.Name == "D" + este.Name.Replace("L", "")))
                {
                    item.Image = Properties.Resources.dislike;
                }
            };
            Panel_View.Controls.Add(Like);
            PictureBox Dislike = new PictureBox
            {
                Size     = new Size(80, 40),
                SizeMode = PictureBoxSizeMode.Zoom,
                Location = new Point(point.X + Like.Size.Width, point.Y),
                Name     = "D" + Atual.ID.ToString()
            };

            if (esta.ID != 0 && esta._Avaliacao == false)
            {
                Dislike.Image = Properties.Resources.dislike_ativo;
            }
            else
            {
                Dislike.Image = Properties.Resources.dislike;
            }
            Dislike.Click += (object sender, EventArgs e) =>
            {
                PictureBox   este      = sender as PictureBox;
                Avaliacao    avaliacao = new Avaliacao();
                AvaliacaoDAL dal       = new AvaliacaoDAL();
                avaliacao = dal.Consultar(UsuarioAtual.ID, Convert.ToInt32(este.Name.Substring(1, este.Name.Length - 1)), 0);
                if (avaliacao.ID == 0)
                {
                    avaliacao = new Avaliacao
                    {
                        Denuncia = false,
                        Pergunta = Atual,
                        Resposta = null,
                        Usuario  = new Usuario {
                            ID = UsuarioAtual.ID
                        },
                        _Avaliacao = false
                    };
                    dal.Inserir(avaliacao);
                }
                else
                {
                    avaliacao._Avaliacao = false;
                    dal.Alterar(avaliacao);
                }
                este.Image = Properties.Resources.dislike_ativo;
                foreach (var item in pictureBoxesPergunta.Where(x => x.Name == "L" + este.Name.Replace("D", "")))
                {
                    item.Image = Properties.Resources.like;
                }
            };
            Panel_View.Controls.Add(Dislike);
            pictureBoxesPergunta.Add(Like);
            pictureBoxesPergunta.Add(Dislike);
            Label Denucia = new Label
            {
                Text      = "Denunciar",
                Font      = new Font("Arial", 10),
                AutoSize  = true,
                Location  = new Point(point.X + Like.Size.Width + Dislike.Size.Width, point.Y),
                ForeColor = ColorTranslator.FromHtml("#000449"),
                Name      = Atual.ID.ToString()
            };

            Denucia.Click += (object sender, EventArgs e) =>
            {
                Label este = sender as Label;
                if (MessageBox.Show("Deseja realmente denunciar essa pergunta ? Essa ação não poderá ser desfeita", "Enigma", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                {
                    Avaliacao    avaliacao = new Avaliacao();
                    AvaliacaoDAL dal       = new AvaliacaoDAL();
                    avaliacao = dal.Consultar(UsuarioAtual.ID, Convert.ToInt32(este.Name), 0);
                    if (avaliacao.ID == 0)
                    {
                        avaliacao = new Avaliacao
                        {
                            Denuncia = true,
                            Pergunta = Atual,
                            Resposta = null,
                            Usuario  = new Usuario {
                                ID = UsuarioAtual.ID
                            },
                            _Avaliacao = false
                        };
                        dal.Inserir(avaliacao);
                    }
                    else
                    {
                        avaliacao.Denuncia = true;
                        dal.Alterar(avaliacao);
                    }
                    Panel_View.Controls.Clear();
                    Buscar();
                    CarregarGrid();
                }
            };
            Panel_View.Controls.Add(Denucia);
            point.Y += Like.Size.Height;
            point.Y += 5;
            Label respostas = new Label
            {
                Text     = "Respostas",
                Font     = new Font("Arial", 24, FontStyle.Bold),
                AutoSize = true,
                Location = point
            };

            Panel_View.Controls.Add(respostas);
            Button responder = new Button
            {
                Text      = "Responder",
                Font      = new Font("Arial", 24),
                ForeColor = Color.White,
                BackColor = ColorTranslator.FromHtml("#000449"),
                Size      = new Size(80, 40),
                AutoSize  = true,
                Location  = new Point(point.X + respostas.Size.Width, point.Y)
            };

            responder.MouseEnter += (object sender, EventArgs e) =>
            {
                Program.PanelMaterias.Visible = false;
                Program.PanelUsuario.Visible  = false;
                Button este = sender as Button;
                Color  cor  = ColorTranslator.FromHtml("#00058d");
                este.BackColor = cor;
            };
            responder.MouseLeave += (object sender, EventArgs e) =>
            {
                Color  cor  = ColorTranslator.FromHtml("#000449");
                Button este = sender as Button;
                este.BackColor = cor;
            };
            responder.Click += (object sender, EventArgs e) =>
            {
                Form form = new Form_Add_Pergunta_Resposta(Atual);
                form.ShowDialog();
                PerguntaDAL dal = new PerguntaDAL();
                Atual = dal.Consultar(Atual.ID);
                CarregarPergunta();
            };
            Panel_View.Controls.Add(responder);
            point.Y += respostas.Size.Height + 20;
            CarregarRespostas(point);
        }