protected void Page_Load(object sender, EventArgs e)
        {
            ReclamaPoaEntities _db = new ReclamaPoaEntities();
            int totalReclamacoes   = _db.Reclamacoes.Count();
            int totalComentarios   = _db.Comentarios.Count();

            lblTotal.Text            = totalReclamacoes.ToString();
            lblTotalComentarios.Text = totalComentarios.ToString();
            lblMediaComentGeral.Text = ((decimal)totalComentarios / totalReclamacoes).ToString();

            if (!IsPostBack)
            {
                ddlBairros.DataSource     = _db.Bairros.ToList();
                ddlBairros.DataTextField  = "Nome";
                ddlBairros.DataValueField = "BairroId";
                ddlBairros.DataBind();

                ddlBairros.Items.Insert(0, new ListItem(String.Empty, String.Empty));
                ddlBairros.SelectedIndex = 0;

                ddlCategorias.DataSource     = _db.Categorias.ToList();
                ddlCategorias.DataTextField  = "Nome";
                ddlCategorias.DataValueField = "CategoriaId";
                ddlCategorias.DataBind();

                ddlCategorias.Items.Insert(0, new ListItem(String.Empty, String.Empty));
                ddlCategorias.SelectedIndex = 0;
            }
        }
예제 #2
0
        public ReclamacaoViewModel getReclamacao()
        {
            String filtro = (string)Request.QueryString["id"];

            if (filtro != null)
            {
                ReclamaPoaEntities _db = new ReclamaPoaEntities();

                int id;
                if (Int32.TryParse(filtro, out id))
                {
                    var query = from reclamacao in _db.Reclamacoes
                                where reclamacao.ReclamacaoId == id
                                select new ReclamacaoViewModel()
                    {
                        Titulo    = reclamacao.Titulo,
                        Descricao = reclamacao.Descricao,
                        Data      = reclamacao.Data,
                        Endereco  = reclamacao.Endereco,
                        Situacao  = reclamacao.Situacao.ToString(),
                        Bairro    = reclamacao.Bairro.Nome,
                        Categoria = reclamacao.Categoria.Nome,
                        UrlImagem = reclamacao.UrlImagem,
                        Usuario   = reclamacao.Usuario
                    };
                    if (query.Count() > 0)
                    {
                        return(query.First());
                    }
                }
            }
            return(new ReclamacaoViewModel());
        }
예제 #3
0
        public IQueryable <ReclamacaoViewModel> GetReclamacoes()
        {
            string   filtro  = ddlbairro.SelectedItem.ToString();
            string   filtro2 = ddlcategoria.SelectedItem.ToString();
            DateTime inicio  = calInicio.SelectedDate;
            DateTime fim     = calFim.SelectedDate;

            ReclamaPoaEntities _db = new ReclamaPoaEntities();

            query = from r in _db.Reclamacoes
                    where r.Categoria.Nome == filtro2 && r.Bairro.Nome == filtro && r.Data >= inicio && r.Data <= fim
                    select new ReclamacaoViewModel
            {
                ReclamacaoId = r.ReclamacaoId,
                Titulo       = r.Titulo,
                Descricao    = r.Descricao,
                Data         = r.Data,
                Endereco     = r.Endereco,
                Situacao     = r.Situacao.ToString(),
                Bairro       = r.Bairro.Nome,
                Categoria    = r.Categoria.Nome,
                UrlImagem    = r.UrlImagem
            };
            lvpesquisas.DataBind();
            return(query);
        }
예제 #4
0
        public IQueryable <ReclamacaoViewModel> GetReclamacoes()
        {
            // int filtro = int.Parse(DropDownList1.SelectedValue);
            string             filtro = DropDownList1.SelectedItem.ToString();
            DateTime           inicio = calInicio.SelectedDate;
            DateTime           fim    = calFim.SelectedDate;
            ReclamaPoaEntities _db    = new ReclamaPoaEntities();

            query = from r in _db.Reclamacoes
                    where filtro == r.Bairro.Nome && r.Data >= inicio && r.Data <= fim
                    select new ReclamacaoViewModel
            {
                ReclamacaoId = r.ReclamacaoId,
                Titulo       = r.Titulo,
                Descricao    = r.Descricao,
                Data         = r.Data,
                Endereco     = r.Endereco,
                Situacao     = r.Situacao.ToString(),
                Bairro       = r.Bairro.Nome,
                Categoria    = r.Categoria.Nome,
                UrlImagem    = r.UrlImagem
            };


            lvbairros.DataBind();
            return(query);
        }
예제 #5
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         ReclamaPoaEntities _db = new ReclamaPoaEntities();
         DropDownList1.DataSource     = _db.Bairros.ToList();
         DropDownList1.DataTextField  = "Nome";
         DropDownList1.DataValueField = "BairroId";
         DropDownList1.DataBind();
     }
 }
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         ReclamaPoaEntities _db = new ReclamaPoaEntities();
         ddl.DataSource     = _db.Categorias.ToList();
         ddl.DataTextField  = "Nome";
         ddl.DataValueField = "CategoriaId";
         ddl.DataBind();
     }
 }
예제 #7
0
        /// <summary>
        /// Recupera os comentarios da reclamacao
        /// </summary>
        /// <returns></returns>
        public IQueryable <ComentarioViewModel> getComentarios()
        {
            int id = Int32.Parse(Request.QueryString["id"]);
            ReclamaPoaEntities _db = new ReclamaPoaEntities();

            IQueryable <ComentarioViewModel> cvmData = from c in _db.Comentarios
                                                       where c.Reclamacao.ReclamacaoId == id
                                                       select new ComentarioViewModel
            {
                ComentarioId = c.ComentarioId,
                Texto        = c.Texto,
                Usuario      = c.Usuario,
                ReclamacaoId = c.Reclamacao.ReclamacaoId
            };

            return(cvmData);
        }
        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            ReclamaPoaEntities _db = new ReclamaPoaEntities();

            Reclamacao reclamacao = new Reclamacao();

            reclamacao.Titulo    = txtNomeRec.Text;
            reclamacao.Descricao = txtDescRec.Text;

            int idBairro;

            if (Int32.TryParse(ddlBairros.SelectedValue, out idBairro))
            {
                Bairro bairro = (from b in _db.Bairros
                                 where b.BairroId == idBairro
                                 select b).First();

                reclamacao.Bairro = bairro;
            }

            int idCategoria;

            if (Int32.TryParse(rblCategorias.SelectedValue, out idCategoria))
            {
                Categoria categoria = (from c in _db.Categorias
                                       where c.CategoriaId == idCategoria
                                       select c).First();

                reclamacao.Categoria = categoria;
            }

            reclamacao.Data      = DateTime.Now.Date;
            reclamacao.Endereco  = txtEndereco.Text;
            reclamacao.Situacao  = Situacao.Aberta;
            reclamacao.UrlImagem = txtUrlImagem.Text;
            reclamacao.Usuario   = Context.User.Identity.Name;


            _db.Reclamacoes.Add(reclamacao);
            _db.SaveChanges();

            Response.Redirect("Nova-Reclamacao.aspx");
        }
예제 #9
0
        //public IQueryable<Categoria> getCategorias()
        //{
        //    ReclamaPoaEntities _db = new ReclamaPoaEntities();
        //    IQueryable<Categoria> query = _db.Categorias;
        //    return query;
        //}

        public IQueryable <ReclamacaoViewModel> GetReclamacoes()
        {
            ReclamaPoaEntities _db = new ReclamaPoaEntities();

            //String aberta = "label label-warning";
            //String resolvida = "label label-success";
            //String encerrada = "label label-default";

            IQueryable <ReclamacaoViewModel> query = from r in _db.Reclamacoes
                                                     select new ReclamacaoViewModel
            {
                ReclamacaoId = r.ReclamacaoId,
                Titulo       = r.Titulo,
                Descricao    = r.Descricao,
                Data         = r.Data,
                Endereco     = r.Endereco,
                Situacao     = r.Situacao.ToString(),
                Bairro       = r.Bairro.Nome,
                Categoria    = r.Categoria.Nome,
                UrlImagem    = r.UrlImagem
            };

            //foreach (ReclamacaoViewModel r in query)
            //{
            //    if (r.Situacao == "Encerrada")
            //    {
            //        r.SituacaoClass = encerrada;
            //    }
            //    else if (r.Situacao == "Resolvida")
            //    {
            //        r.SituacaoClass = resolvida;
            //    }
            //    else
            //    {
            //        r.SituacaoClass = aberta;
            //    }
            //}



            return(query);
        }
예제 #10
0
        protected void btnComentario_Click(object sender, EventArgs e)
        {
            ReclamaPoaEntities _db             = new ReclamaPoaEntities();
            Comentario         comentario      = new Comentario();
            TextBox            textoComentario = (TextBox)LoginView1.FindControl("txtComentario");

            String filtro = (string)Request.QueryString["id"];
            int    id;

            if (Int32.TryParse(filtro, out id))
            {
                // query para pegar a reclamação
                var        query = _db.Reclamacoes.Where(r => r.ReclamacaoId == id);
                Reclamacao r1    = query.First();

                comentario.Texto      = textoComentario.Text;
                comentario.Reclamacao = r1;
                comentario.Usuario    = Context.User.Identity.Name;
            }
            _db.Comentarios.Add(comentario);
            _db.SaveChanges();

            Response.Redirect("Detalhes.aspx?id=" + id);
        }
        private void valueChange()
        {
            ReclamaPoaEntities _db = new ReclamaPoaEntities();

            int      totalReclamacoes = _db.Reclamacoes.Count();
            int      subTotalRec      = 0;
            int      subTotalCom      = 0;
            int      recAbertas       = 0;
            int      recEncerradas    = 0;
            int      recResolvidas    = 0;
            int      categoriaId;
            int      bairroId;
            DateTime inicio;
            DateTime fim;
            Decimal  porcentagem       = 0m;
            Decimal  porcentAbertas    = 0m;
            Decimal  porcentEncerradas = 0m;
            Decimal  porcentResolvidas = 0m;
            Decimal  mediaComentarios  = 0m;



            // filtra por categoria, bairro e periodo
            if (int.TryParse(ddlCategorias.SelectedValue, out categoriaId) &&
                int.TryParse(ddlBairros.SelectedValue, out bairroId) &&
                (DateTime.TryParse(txtDataInicio.Text, out inicio) && DateTime.TryParse(txtDataFinal.Text, out fim)))
            {
                // busca reclamações de acordo com os filtros
                var queryRec = _db.Reclamacoes.Where(r => r.Categoria.CategoriaId == categoriaId &&
                                                     r.Bairro.BairroId == bairroId &&
                                                     (r.Data >= inicio && r.Data <= fim)
                                                     );
                // busca comentários de acordo com os filtros
                var queryCom = _db.Comentarios.Where(c => c.Reclamacao.Categoria.CategoriaId == categoriaId &&
                                                     c.Reclamacao.Bairro.BairroId == bairroId &&
                                                     (c.Reclamacao.Data >= inicio && c.Reclamacao.Data <= fim)
                                                     );

                subTotalRec = queryRec.Count();
                subTotalCom = queryCom.Count();

                recAbertas    = queryRec.Where(r => r.Situacao == Situacao.Aberta).Count();
                recEncerradas = queryRec.Where(r => r.Situacao == Situacao.Encerrada).Count();
                recResolvidas = queryRec.Where(r => r.Situacao == Situacao.Resolvida).Count();

                // ***** SE FUNCIONAR, APAGAR O BLOCO COMENTADO *****
                //// calcula a porcentagem das reclamações em relação ao total geral
                //if (totalReclamacoes != 0)
                //{ porcentagem = (Decimal) subTotalRec / totalReclamacoes; }

                //// calcula a média de comentários por reclamação
                //if (subTotalRec != 0 )
                //{ mediaComentarios = (Decimal)subTotalCom / subTotalRec; }

                //if (subTotalRec != 0)
                //{ porcentAbertas = (Decimal)recAbertas / subTotalRec; }

                //if (subTotalRec != 0)
                //{ porcentEncerradas = (Decimal)recEncerradas / subTotalRec; }

                //if (subTotalRec != 0)
                //{ porcentResolvidas = (Decimal)recResolvidas / subTotalRec; }

                //lblSubTotal.Text = String.Format("Reclamações: {0} ({1:P} do total)", subTotalRec, porcentagem);
                //lblMediaFiltrada.Text = String.Format("Número médio de comentários por reclamação: {0}", mediaComentarios);
                //lblAbertas.Text = String.Format("Reclamações abertas: {0} ({1:P} do total)", recAbertas, porcentAbertas);
                //lblResolvidas.Text = String.Format("Reclamações resolvidas: {0} ({1:P} do total)", recResolvidas, porcentResolvidas);
                //lblEncerradas.Text = String.Format("Reclamações encerradas: {0} ({1:P} do total)", recEncerradas, porcentEncerradas);
                //UpdatePanel1.Update();
            }
            // filtra somente por categoria
            else if (int.TryParse(ddlCategorias.SelectedValue, out categoriaId) &&
                     !int.TryParse(ddlBairros.SelectedValue, out bairroId) &&
                     !(DateTime.TryParse(txtDataInicio.Text, out inicio) && DateTime.TryParse(txtDataFinal.Text, out fim)))
            {
                // busca reclamações de acordo com os filtros
                var queryRec = _db.Reclamacoes.Where(r => r.Categoria.CategoriaId == categoriaId);
                // busca comentários de acordo com os filtros
                var queryCom = _db.Comentarios.Where(c => c.Reclamacao.Categoria.CategoriaId == categoriaId);

                subTotalRec = queryRec.Count();
                subTotalCom = queryCom.Count();

                recAbertas    = queryRec.Where(r => r.Situacao == Situacao.Aberta).Count();
                recEncerradas = queryRec.Where(r => r.Situacao == Situacao.Encerrada).Count();
                recResolvidas = queryRec.Where(r => r.Situacao == Situacao.Resolvida).Count();
            }
            // filtra somente por bairro
            else if (!int.TryParse(ddlCategorias.SelectedValue, out categoriaId) &&
                     int.TryParse(ddlBairros.SelectedValue, out bairroId) &&
                     !(DateTime.TryParse(txtDataInicio.Text, out inicio) && DateTime.TryParse(txtDataFinal.Text, out fim)))
            {
                // busca reclamações de acordo com os filtros
                var queryRec = _db.Reclamacoes.Where(r => r.Bairro.BairroId == bairroId);
                // busca comentários de acordo com os filtros
                var queryCom = _db.Comentarios.Where(c => c.Reclamacao.Bairro.BairroId == bairroId);

                subTotalRec = queryRec.Count();
                subTotalCom = queryCom.Count();

                recAbertas    = queryRec.Where(r => r.Situacao == Situacao.Aberta).Count();
                recEncerradas = queryRec.Where(r => r.Situacao == Situacao.Encerrada).Count();
                recResolvidas = queryRec.Where(r => r.Situacao == Situacao.Resolvida).Count();
            }
            // filtra somente por período
            else if (!int.TryParse(ddlCategorias.SelectedValue, out categoriaId) &&
                     !int.TryParse(ddlBairros.SelectedValue, out bairroId) &&
                     (DateTime.TryParse(txtDataInicio.Text, out inicio) && DateTime.TryParse(txtDataFinal.Text, out fim)))
            {
                // busca reclamações de acordo com os filtros
                var queryRec = _db.Reclamacoes.Where(r => r.Data >= inicio && r.Data <= fim);
                // busca comentários de acordo com os filtros
                var queryCom = _db.Comentarios.Where(c => c.Reclamacao.Data >= inicio && c.Reclamacao.Data <= fim);

                subTotalRec = queryRec.Count();
                subTotalCom = queryCom.Count();

                recAbertas    = queryRec.Where(r => r.Situacao == Situacao.Aberta).Count();
                recEncerradas = queryRec.Where(r => r.Situacao == Situacao.Encerrada).Count();
                recResolvidas = queryRec.Where(r => r.Situacao == Situacao.Resolvida).Count();
            }
            // filtra por categoria e bairro
            else if (int.TryParse(ddlCategorias.SelectedValue, out categoriaId) &&
                     int.TryParse(ddlBairros.SelectedValue, out bairroId) &&
                     !(DateTime.TryParse(txtDataInicio.Text, out inicio) && DateTime.TryParse(txtDataFinal.Text, out fim)))
            {
                // busca reclamações de acordo com os filtros
                var queryRec = _db.Reclamacoes.Where(r => r.Categoria.CategoriaId == categoriaId &&
                                                     r.Bairro.BairroId == bairroId);
                // busca comentários de acordo com os filtros
                var queryCom = _db.Comentarios.Where(c => c.Reclamacao.Categoria.CategoriaId == categoriaId &&
                                                     c.Reclamacao.Bairro.BairroId == bairroId);

                subTotalRec = queryRec.Count();
                subTotalCom = queryCom.Count();

                recAbertas    = queryRec.Where(r => r.Situacao == Situacao.Aberta).Count();
                recEncerradas = queryRec.Where(r => r.Situacao == Situacao.Encerrada).Count();
                recResolvidas = queryRec.Where(r => r.Situacao == Situacao.Resolvida).Count();
            }
            // filtra por categoria e período
            else if (int.TryParse(ddlCategorias.SelectedValue, out categoriaId) &&
                     !int.TryParse(ddlBairros.SelectedValue, out bairroId) &&
                     (DateTime.TryParse(txtDataInicio.Text, out inicio) && DateTime.TryParse(txtDataFinal.Text, out fim)))
            {
                // busca reclamações de acordo com os filtros
                var queryRec = _db.Reclamacoes.Where(r => r.Categoria.CategoriaId == categoriaId &&
                                                     (r.Data >= inicio && r.Data <= fim));
                // busca comentários de acordo com os filtros
                var queryCom = _db.Comentarios.Where(c => c.Reclamacao.Categoria.CategoriaId == categoriaId &&
                                                     (c.Reclamacao.Data >= inicio && c.Reclamacao.Data <= fim));

                subTotalRec = queryRec.Count();
                subTotalCom = queryCom.Count();

                recAbertas    = queryRec.Where(r => r.Situacao == Situacao.Aberta).Count();
                recEncerradas = queryRec.Where(r => r.Situacao == Situacao.Encerrada).Count();
                recResolvidas = queryRec.Where(r => r.Situacao == Situacao.Resolvida).Count();
            }
            // filtra por bairro e período
            else if (!int.TryParse(ddlCategorias.SelectedValue, out categoriaId) &&
                     int.TryParse(ddlBairros.SelectedValue, out bairroId) &&
                     (DateTime.TryParse(txtDataInicio.Text, out inicio) && DateTime.TryParse(txtDataFinal.Text, out fim)))
            {
                // busca reclamações de acordo com os filtros
                var queryRec = _db.Reclamacoes.Where(r => r.Bairro.BairroId == bairroId &&
                                                     (r.Data >= inicio && r.Data <= fim));
                // busca comentários de acordo com os filtros
                var queryCom = _db.Comentarios.Where(c => c.Reclamacao.Bairro.BairroId == bairroId &&
                                                     (c.Reclamacao.Data >= inicio && c.Reclamacao.Data <= fim));

                subTotalRec = queryRec.Count();
                subTotalCom = queryCom.Count();

                recAbertas    = queryRec.Where(r => r.Situacao == Situacao.Aberta).Count();
                recEncerradas = queryRec.Where(r => r.Situacao == Situacao.Encerrada).Count();
                recResolvidas = queryRec.Where(r => r.Situacao == Situacao.Resolvida).Count();
            }

            // calcula a média de comentários por reclamação
            if (subTotalRec != 0)
            {
                mediaComentarios = (Decimal)subTotalCom / subTotalRec;
            }

            // calcula a porcentagem das reclamações em relação ao total geral
            if (totalReclamacoes != 0)
            {
                porcentagem = (Decimal)subTotalRec / totalReclamacoes;
            }

            // calcula a porcentagem de reclamações abertas, resolvidas ou encerradas
            if (subTotalRec != 0)
            {
                porcentAbertas = (Decimal)recAbertas / subTotalRec;
            }

            if (subTotalRec != 0)
            {
                porcentEncerradas = (Decimal)recEncerradas / subTotalRec;
            }

            if (subTotalRec != 0)
            {
                porcentResolvidas = (Decimal)recResolvidas / subTotalRec;
            }

            // atribui os resultados aos labels
            lblSubTotal.Text      = String.Format("Reclamações: {0} ({1:P} do total)", subTotalRec, porcentagem);
            lblMediaFiltrada.Text = String.Format("Número médio de comentários por reclamação: {0}", mediaComentarios);
            lblAbertas.Text       = String.Format("Reclamações abertas: {0} ({1:P} do total)", recAbertas, porcentAbertas);
            lblResolvidas.Text    = String.Format("Reclamações resolvidas: {0} ({1:P} do total)", recResolvidas, porcentResolvidas);
            lblEncerradas.Text    = String.Format("Reclamações encerradas: {0} ({1:P} do total)", recEncerradas, porcentEncerradas);
            UpdatePanel1.Update();
        }