예제 #1
0
        private void loginbutton_Click(object sender, EventArgs e)
        {
            //Verificar se o Login está correcto
            string sql         = "select idConta,Username , Password from Conta where Username = '******' And Password = '******'";
            SB_DB  buscarLogin = new SB_DB(sql, 3, "select");

            buscarLogin.Run();

            IList <String> resultado = buscarLogin.List;

            if (resultado.Count == 0)
            {
                MessageBox.Show("Username ou Password Erradas");
            }
            else
            {
                MessageBox.Show("Login com Sucesso.");

                //Defenir o id da sessão
                Program.IdSessao      = txtusername.Text;
                Program.IdContaActiva = Convert.ToInt32(buscarLogin.List[0]);

                //Mostrar a Página principal
                fPaginaPrincipal verPaginaPricinpal = new fPaginaPrincipal();
                this.Hide();
                verPaginaPricinpal.Show();
            }
        }
예제 #2
0
        public fPaginaPrincipal()
        {
            //buscar ultimo login
            string sql = "select TOP 1 Data from Sessao,Conta where Sessao.idConta = Conta.idConta and Conta.idConta = '" + Program.IdContaActiva + "' Order BY Data DESC";
            SB_DB  buscarUltimeLogin = new SB_DB(sql, 1, "select");

            buscarUltimeLogin.Run();

            InitializeComponent();
            btgrupos.Hide();

            //Preencher os labels
            lbusername.Text    = Program.IdSessao;
            lbultimologin.Text = buscarUltimeLogin.List[0];

            dgvideiasrecentes.AllowUserToAddRows = false;

            //Preencher as colunas da datagridview
            dgvideiasrecentes.Columns.Add("idIdeia", "idIdeia");
            dgvideiasrecentes.Columns.Add("Titulo", "Título");
            dgvideiasrecentes.Columns.Add("Criado", "Criado Por");

            //Buscar as ideias por ordem descrecente da data
            sql = "select Ideia.idIdeia, Ideia.Titulo, Username from Ideia INNER JOIN Conta ON Ideia.idConta = Conta.idConta ORDER BY Data DESC";
            SB_DB buscarIdeiasRecentes = new SB_DB(sql, 3, "select");

            buscarIdeiasRecentes.Run();

            //Preencher a datagridView com Subscriçoes
            for (int i = 2; i < buscarIdeiasRecentes.List.Count; i = i + 3)
            {
                dgvideiasrecentes.Rows.Add(buscarIdeiasRecentes.List[i - 2], buscarIdeiasRecentes.List[i - 1], buscarIdeiasRecentes.List[i]);
            }
        }
예제 #3
0
        private void btpesquisa_Click(object sender, EventArgs e)
        {
            //Limpar a datagridview
            dgvpesquisaideias.Rows.Clear();

            //Buscar as ideias por ordem descrecente da data
            string sql = "select distinct Ideia.idIdeia, Ideia.Titulo,Ideia.Data, Username " +
                         "from Tag,Ideia " +
                         "INNER JOIN Conta ON Ideia.idConta = Conta.idConta " +
                         "INNER JOIN Categoria ON Ideia.idCategoria = Categoria.idCategoria" +
                         " where Ideia.Estado LIKE '%" + txtpesquisa.Text + "%' " +
                         "OR Ideia.Mensagem LIKE '%" + txtpesquisa.Text + "%' " +
                         "OR Ideia.Titulo LIKE '%" + txtpesquisa.Text + "%' " +
                         "OR Conta.Username LIKE '%" + txtpesquisa.Text + "%'" +
                         " OR Categoria.Tipo LIKE '%" + txtpesquisa.Text + "%' " +
                         "OR Tag.Nome LIKE '%" + txtpesquisa.Text + "%'";
            SB_DB buscarIdeiasRecentes = new SB_DB(sql, 4, "select");

            buscarIdeiasRecentes.Run();

            //Preencher a datagridView com Subscriçoes
            for (int i = 3; i < buscarIdeiasRecentes.List.Count; i = i + 4)
            {
                dgvpesquisaideias.Rows.Add(buscarIdeiasRecentes.List[i - 3], buscarIdeiasRecentes.List[i - 2], buscarIdeiasRecentes.List[i - 1], buscarIdeiasRecentes.List[i]);
            }

            //Limpar a textBox da pesquisa
            txtpesquisa.Text = "";
        }
예제 #4
0
        private void VerificaSubscricao()
        {
            var sub = false;

            //Buscar as subscrições do utilizador e verificar já fez a subscrição dessa Ideia
            string sql         = "select idSubscricao from Subscricao, Conta where Subscricao.idConta = '" + Program.IdContaActiva + "' and idIdeia = '" + idIdeia_activa + "'";
            SB_DB  buscarIdeia = new SB_DB(sql, 1, "select");

            buscarIdeia.Run();

            //verifica está subscrito
            if (buscarIdeia.List.Count > 0)
            {
                sub = true;
            }

            if (!sub)
            {
                btsubscrever.Show();
                btnsubscrever.Hide();
            }
            else
            {
                btsubscrever.Hide();
                btnsubscrever.Show();
            }
        }
예제 #5
0
        private void GetRatingLabel()
        {
            string sql;

            //Buscar o Rating da Ideia
            sql = "select Valor from Rating, ideia where Rating.idIdeia = '" + idIdeia_activa + "' and Ideia.idIdeia = '" +
                  idIdeia_activa + "'";
            SB_DB buscarRating = new SB_DB(sql, 1, "select");

            buscarRating.Run();

            int rating = 0;

            for (int i = 0; i < buscarRating.List.Count; i++)
            {
                rating = rating + Convert.ToInt32(buscarRating.List[i]);
            }

            if (buscarRating.List.Count > 0)
            {
                rating = rating / Convert.ToInt32(buscarRating.List.Count);
            }

            lbrating.Text = rating.ToString();
        }
예제 #6
0
        private void btnsubscrever_Click(object sender, EventArgs e)
        {
            //Eliminar na base de dados a subscrição dessa ideia do utilizador acitvo
            string sql         = "delete from Subscricao where idConta = '" + Program.IdContaActiva + "' and idIdeia = '" + idIdeia_activa + "'";
            SB_DB  eliminarSub = new SB_DB(sql, 1, "insert");

            eliminarSub.Run();


            //Actualizar o botão
            VerificaSubscricao();
        }
예제 #7
0
        private void btsubscrever_Click(object sender, EventArgs e)
        {
            //Inserir na base de dados a subscrição
            string     sql = "insert into Subscricao (Data,idIdeia,idConta) values ('" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + idIdeia_activa + "','" + Program.IdContaActiva + "')";
            AbstractDB inserirComentario = new SB_DB(sql, 1, "insert");

            inserirComentario.Run();


            //Actualizar o botão
            VerificaSubscricao();
        }
예제 #8
0
        /// <summary>
        /// Validação dos inputs do registo
        /// </summary>
        public bool Validar(IList <string> obj)
        {
            bool validar = true;

            //Verifica string vazias
            if (StringVazias(obj[0], "Nome") && StringVazias(obj[1], "Aplido") && StringVazias(obj[2], "Email") &&
                StringVazias(obj[4], "UserName") && StringVazias(obj[5], "Password"))
            {
                validar = true;
            }
            else
            {
                validar = false;
            }



            //Verifica a data de nascimento
            if (Convert.ToDateTime(obj[3]) > DateTime.Today || Convert.ToDateTime(obj[3]) == DateTime.Today)
            {
                MessageBox.Show("Data Nascimento está Errada");
                validar = false;
            }

            // ReSharper disable once InvertIf
            if (!Regex.IsMatch(obj[2], "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"))
            {
                MessageBox.Show("Email com formato errado");
                validar = false;
            }

            //Verificar as Password se são iguais
            if (obj[5] != obj[6])
            {
                MessageBox.Show("As passwords não são iguais");
                validar = false;
            }

            //Verificar utilizadores na base de dados
            string sql           = "Select idConta from Conta where username = '******'";
            SB_DB  procurarConta = new SB_DB(sql, 1, "select");

            procurarConta.Run();

            if (procurarConta.List.Count > 0)
            {
                validar = false;
                MessageBox.Show("Nome do Username ja registado!");
            }

            return(validar);
        }
예제 #9
0
        private void btsair_Click(object sender, EventArgs e)
        {
            //Inserir uma Sessao associada a conta
            string dataUltimoLogin = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            string sql             = "insert into Sessao (Data,idConta) values ('" + dataUltimoLogin + "','" + Program.IdContaActiva + "')";
            SB_DB  inseriSessao    = new SB_DB(sql, 1, "insert");

            inseriSessao.Run();
            MessageBox.Show("Volte Sempre!");

            var formLogin = new Welcome();

            this.Hide();
            formLogin.Show();
        }
예제 #10
0
        private void btvotar_Click(object sender, EventArgs e)
        {
            //Verifica se tem valores na comboBox de votar
            if (!cmbvotar.SelectedItem.ToString().Equals(" "))
            {
                //Inserção do Rating consoante a ideia e a Conta
                string sql         = "insert into Rating (Valor,Data,idIdeia,idConta) values ('" + cmbvotar.SelectedItem.ToString() + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + idIdeia_activa + "','" + Program.IdContaActiva + "')";
                SB_DB  buscarIdeia = new SB_DB(sql, 1, "select");
                buscarIdeia.Run();

                //Verificar a comboBox do rating
                VerificarVotacao();

                GetRatingLabel();
            }
        }
예제 #11
0
        private void btalterarvotaçao_Click(object sender, EventArgs e)
        {
            if (!cmbvotar.SelectedItem.ToString().Equals(" "))
            {
                //Update do Rating consoante a ideia e a Conta
                string sql         = "UPDATE Rating SET Valor = '" + Convert.ToInt32(cmbvotar.SelectedItem.ToString()) + "' WHERE Rating.idIdeia = '" + idIdeia_activa + "' and Rating.idConta = '" + Program.IdContaActiva + "'";
                SB_DB  buscarIdeia = new SB_DB(sql, 1, "select");
                buscarIdeia.Run();

                MessageBox.Show("O Rating foi Alterado para esta Ideia.");

                GetRatingLabel();
            }
            else
            {
                MessageBox.Show("Escolha um Rating.");
            }
        }
예제 #12
0
        private void InserirCatComboBox()
        {
            //Defenir os parametros da combobox
            cmbcategoria.Items.Add("Selecionar");
            cmbcategoria.SelectedItem = "Selecionar";

            // Buscar a lista de categorias a base de dados
            string sql = "select * from Categoria";
            SB_DB  buscarCategorias = new SB_DB(sql, 2, "select");

            buscarCategorias.Run();

            //Preencher a combobox Consoante o resulta da busca
            for (int i = 0; i < buscarCategorias.List.Count; i++)
            {
                i++;
                cmbcategoria.Items.Add(buscarCategorias.List[i]);
                var cat = new Categoria(Convert.ToInt32(buscarCategorias.List[i - 1]), buscarCategorias.List[i]);
                categoriaLista.Add(cat);
            }
        }
예제 #13
0
        public Profile()
        {
            InitializeComponent();

            //buscar o info do Utilizador
            string sql             = "select Nome,Apelido,Email,DataNascimento,Tipo from Conta INNER JOIN Perfil ON Conta.idConta = Perfil.idConta where Conta.idConta = '" + Program.IdContaActiva + "'";
            SB_DB  buscarInfoConta = new SB_DB(sql, 5, "select");

            buscarInfoConta.Run();

            //Corrigir o label da data de nascimento
            string[] datanascimento = buscarInfoConta.List[3].Split(' ');

            //Preencher os labels consoante o info do Utilizador
            lbnome.Text           = buscarInfoConta.List[0];
            lbapelido.Text        = buscarInfoConta.List[1];
            lbemail.Text          = buscarInfoConta.List[2];
            lbdatanascimento.Text = datanascimento[0];
            lbtipoconta.Text      = buscarInfoConta.List[4];

            dgvminhasideias.AllowUserToAddRows = false;

            //Preencher as colunas da datagridview
            dgvminhasideias.Columns.Add("idIdeia", "idIdeia");
            dgvminhasideias.Columns.Add("Titulo", "Título");
            dgvminhasideias.Columns.Add("Data", "Data");

            //Buscar as ideias criadas pelo Utilizador Por
            sql = "select Ideia.idIdeia, Ideia.Titulo,Data from Ideia INNER JOIN Conta ON Ideia.idConta = Conta.idConta where Conta.idConta = '" + Program.IdContaActiva + "'";
            SB_DB buscarMinhasIdeias = new SB_DB(sql, 3, "select");

            buscarMinhasIdeias.Run();

            //Popular a datagridview
            for (int i = 2; i < buscarMinhasIdeias.List.Count; i = i + 3)
            {
                dgvminhasideias.Rows.Add(buscarMinhasIdeias.List[i - 2], buscarMinhasIdeias.List[i - 1], buscarMinhasIdeias.List[i]);
            }
        }
예제 #14
0
        private void button1_Click(object sender, EventArgs e)
        {
            //buscar Conta
            //Criar novo comentário
            // var novoComentario = new Comentario(rtbcomentario.Text, DateTime.Now, myConta2);

            comentario userComentario = new comentario();

            userComentario.setTxtUsername(Program.IdSessao);
            userComentario.setTxtmensagem(rtbcomentario.Text);
            userComentario.setTxtdata(DateTime.Now.ToString());
            flowLayoutPanel1.Controls.Add(userComentario);

            //Inserir a ideia na base de dados
            string     sql = "insert into Comentario (Mensagem,Data,idIdeia,idConta) values ('" + rtbcomentario.Text + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + idIdeia_activa + "','" + Program.IdContaActiva + "')";
            AbstractDB inserirComentario = new SB_DB(sql, 1, "insert");

            inserirComentario.Run();

            //limpar o rtb do comentario
            rtbcomentario.Text = "";
        }
예제 #15
0
        private void InserirConta()
        {
            //Criar o Objeto
            Perfil   p          = new Perfil(txtnome.Text, txtapelido.Text, txtemail.Text, dtpdatadenascimento.Value);
            DateTime dataActual = DateTime.Now;

            var factory  = new UtilizadorFactory();
            var myConta2 = factory.CreateConta(txtusername.Text, txtpassword.Text, 0, dataActual, p);

            //Insere na base de dados a Conta
            string     sql          = "insert into Conta (Username,Password,Tipo) values ('" + myConta2.Username + "','" + myConta2.Password + "','Utilizador')";
            AbstractDB inserirConta = new SB_DB(sql, 1, "insert");

            inserirConta.Run();

            //Pesquisar o id da conta Inserida
            sql = "Select idConta from Conta where username = '******'";
            SB_DB procurarIdConta = new SB_DB(sql, 1, "select");

            procurarIdConta.Run();
            int idConta = Convert.ToInt32(procurarIdConta.List[0]);

            //Inserir o Perfil consoante a conta
            string dataNascimento = myConta2.Perfil.DataNascimento.ToString("yyyy-MM-dd HH:mm:ss");

            sql = "insert into Perfil (Nome,Apelido,Email,DataNascimento,idConta) values ('" + myConta2.Perfil.PrimeiroNome + "','" + myConta2.Perfil.UltimoNome + "','" + myConta2.Perfil.Email + "','" + dataNascimento + "','" + idConta + "')";
            SB_DB inseriPerfil = new SB_DB(sql, 1, "insert");

            inseriPerfil.Run();

            //Inserir o Perfil consoante a conta
            string dataUltimoLogin = myConta2.UltimeLogin.ToString("yyyy-MM-dd HH:mm:ss");

            sql = "insert into Sessao (Data,idConta) values ('" + dataUltimoLogin + "','" + idConta + "')";
            SB_DB inseriSessao = new SB_DB(sql, 1, "insert");

            inseriSessao.Run();
        }
예제 #16
0
        private void VerificarVotacao()
        {
            var sub = false;

            //Buscar as subscrições do utilizador e verificar já fez a subscrição dessa Ideia
            string sql = "select Rating.Valor from Rating " +
                         "INNER JOIN Conta ON Rating.idConta = Conta.idConta " +
                         "INNER JOIN Ideia ON Rating.idIdeia = Ideia.idIdeia " +
                         "Where Rating.idConta = '" + Program.IdContaActiva + "' " +
                         "and Rating.idIdeia = '" + idIdeia_activa + "'";
            SB_DB buscarVotar = new SB_DB(sql, 1, "select");

            buscarVotar.Run();

            //Se a conta tiver já uma votação a ideia definir o rating_ideia_Conta
            if (buscarVotar.List.Count > 0)
            {
                rating_ideia_Conta = Convert.ToInt32(buscarVotar.List[0]);
            }

            //verifica se realizou a votação
            if (buscarVotar.List.Count > 0)
            {
                sub = true;
            }

            if (!sub)
            {
                btvotar.Show();
                btalterarvotaçao.Hide();
            }
            else
            {
                btvotar.Hide();
                btalterarvotaçao.Show();
            }
        }
예제 #17
0
        public fIdeia(int idIdeia)
        {
            idIdeia_activa = idIdeia;
            InitializeComponent();
            InserirVotarComboBox();

            //Buscar o Info da Ideia
            string sql         = "select * from Ideia where idIdeia = '" + idIdeia + "'";
            SB_DB  buscarIdeia = new SB_DB(sql, 8, "select");

            buscarIdeia.Run();

            //Preenchar as variaveis da ideia q vao preencher os Labels da form
            string titulo         = buscarIdeia.List[1];
            string mensagem       = buscarIdeia.List[2];
            string estado         = buscarIdeia.List[3];
            int    idContaDaIdeia = Convert.ToInt32(buscarIdeia.List[7]);

            //Buscar o Info A tag associada a Ideia
            sql = "select Tag.Nome from Ideia_Tag INNER JOIN Tag ON Ideia_Tag.idTag = Tag.idTag where idIdeia = '" + idIdeia + "'";
            SB_DB buscarTag = new SB_DB(sql, 1, "select");

            buscarTag.Run();

            //Buscar a categoria associada a Ideia
            sql = "select Categoria.Tipo from Categoria INNER JOIN Ideia ON Categoria.idCategoria= Ideia.idCategoria where idIdeia = '" + idIdeia + "'";
            SB_DB buscarCategoria = new SB_DB(sql, 1, "select");

            buscarCategoria.Run();

            //Buscar o criador da ideia
            sql = "select Username from Conta where idConta = '" + idContaDaIdeia + "'";
            SB_DB buscarUsername = new SB_DB(sql, 1, "select");

            buscarUsername.Run();

            GetRatingLabel();

            //Definir o groupBox da ideia
            txttitulo.Text    = titulo;
            txtcategoria.Text = buscarCategoria.List[0];
            txtusername.Text  = buscarUsername.List[0];
            rtbmensagem.Text  = mensagem;
            lbestado.Text     = estado;


            //Verifica se tem Tags
            if (buscarTag.List.Count > 0)
            {
                txttag.Text = buscarTag.List[0];
            }
            else
            {
                txttag.Text = "Sem Tags Associada";
            }

            //Botão subescrever/não subscrever
            VerificaSubscricao();

            //Buscar os comentários da Ideia
            sql = "select idComentario,Mensagem,Data,idIdeia,Username,Comentario.idConta from Comentario, Conta where idIdeia = '" + idIdeia_activa + "'and Comentario.idConta = Conta.idConta";
            SB_DB buscarComentario = new SB_DB(sql, 5, "select");

            buscarComentario.Run();

            List <List <string> > cometario = Split(buscarComentario.List, 5);

            //Criar os comentarios e inserir na lista dos cometários
            comentarios = new List <Comentario>();

            //buscar objeto do comentário
            //Comentario coment = new Comentario(cometario[row+0][row], Convert.ToDateTime(cometario[row + 1][row]), cometario[row + 3][row]);

            for (int col = 0; col < cometario.Count; col++)
            {
                //Buscar o Username da criador do Comentario
                sql = "select Username from Comentario, Conta where Comentario.idConta = Conta.idConta and idComentario = '" + cometario[col][0] + "'";
                SB_DB buscarCriadorComentario = new SB_DB(sql, 1, "select");
                buscarCriadorComentario.Run();


                comentario userComentario = new comentario();
                userComentario.setTxtUsername(buscarCriadorComentario.List[0]);
                userComentario.setTxtmensagem(cometario[col][1]);
                userComentario.setTxtdata(cometario[col][2]);
                flowLayoutPanel1.Controls.Add(userComentario);
            }
        }
예제 #18
0
        private void btcriarIdeia_Click(object sender, EventArgs e)
        {
            IList <String> setofdata = new List <string>();

            setofdata.Add(txttitulo.Text);
            setofdata.Add(txttag.Text);
            setofdata.Add(cmbcategoria.SelectedItem.ToString());
            setofdata.Add(rtbmensagem.Text);
            IValidation validarIdeia = CriarIdeiaValidation.Singleton();

            //Validação dos Campos
            if (validarIdeia.Validar(setofdata))
            {
                var categoria = new Categoria("");

                //buscar a categoria selecionada na combobox na lista de categorias
                foreach (var cat in categoriaLista)
                {
                    if (cat.Tipo == cmbcategoria.SelectedItem.ToString())
                    {
                        categoria.Id   = cat.Id;
                        categoria.Tipo = cat.Tipo;
                    }
                }

                //Inserir a ideia da ideia na base de dados
                string sql          = "insert into Ideia (Titulo,Mensagem,Estado,Data,idGrupo,idCategoria,idConta) values ('" + txttitulo.Text + "','" + rtbmensagem.Text + "','Aberto','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',NULL,'" + categoria.Id + "','" + Program.IdContaActiva + "')";
                SB_DB  inseriSessao = new SB_DB(sql, 1, "insert");
                inseriSessao.Run();

                //Ver se a ideia vem com Tag preenchida
                if (!txttag.Text.Equals(""))
                {
                    //Buscar o Id da novoa ideia Criada
                    string sql2        = "select MAX(Ideia.idIdeia)from Ideia";
                    SB_DB  novaIdIdeia = new SB_DB(sql2, 1, "select");
                    novaIdIdeia.Run();

                    //Verificar se tem a Tag na base de dados
                    string sql1        = "select idTag from Tag where Nome = '" + txttag.Text + "'";
                    SB_DB  verificaTag = new SB_DB(sql1, 1, "select");
                    verificaTag.Run();

                    int idIdeiaNova = Convert.ToInt32(novaIdIdeia.List[0]);

                    if (verificaTag.List.Count > 0)
                    {
                        //Inserir a ideia na Tag ja existente - Tabela Ideia_Tag
                        sql1 = "insert into Ideia_Tag (idIdeia,idTag) values ('" + idIdeiaNova + "','" + Convert.ToInt32(verificaTag.List[0]) + "')";
                        SB_DB inseriTagIdeia = new SB_DB(sql1, 1, "insert");
                        inseriTagIdeia.Run();
                    }
                    else
                    {
                        //Inserir a nova Tag na Base de dados
                        sql1 = "insert into Tag (Nome,Data) values ('" + txttitulo.Text + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "')";
                        SB_DB inseriTag = new SB_DB(sql1, 1, "insert");
                        inseriTag.Run();

                        //Buscar o Id da nova Tag Criada
                        sql1 = "select MAX(Tag.idTag)from Tag";
                        SB_DB novaTag = new SB_DB(sql1, 1, "select");
                        novaTag.Run();

                        //Inserir a ideia na Tag ja existente - Tabela Ideia_Tag
                        sql1 = "insert into Ideia_Tag (idIdeia,idTag) values ('" + idIdeiaNova + "','" + Convert.ToInt32(novaTag.List[0]) + "')";
                        SB_DB inseriTagIdeia = new SB_DB(sql1, 1, "insert");
                        inseriTagIdeia.Run();
                    }
                }

                //Mostrar uma mensagem de sucesso
                MessageBox.Show("Inserção com sucesso da ideia: \n"
                                + "Titulo: " + txttitulo.Text + "\n"
                                + "Categoria: " + categoria.Tipo + " Tag: " + txttag.Text + "\n"
                                + "Pelo utilizador: " + Program.IdSessao + "\n"
                                + "Data de Inserção: " + DateTime.Now.ToString());

                //Voltar para Pagina Principal
                fPaginaPrincipal voltarPaginaPrincipal = new fPaginaPrincipal();
                this.Hide();
                voltarPaginaPrincipal.Show();
            }
        }