예제 #1
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;
        }
예제 #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;
        }
        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;
            }
        }
예제 #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;
        }
        //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;
        }
        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");
        }
예제 #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();
        }