public JsonResult EditarChamado(ChamadoModelEdicao model)
        {
            try
            {
                Cliente c = (Cliente)Session["clientelogado"];

                ChamadoDal d = new ChamadoDal();

                Chamado chamado = d.FindById(model.IdChamado);

                if (chamado.Situacao.Equals("Aberto"))
                {
                    chamado.Assunto   = model.Assunto;
                    chamado.Descricao = model.Descricao;

                    d.SaveOrUpdate(chamado);

                    return(Json("Chamado Atualizado."));
                }
                else
                {
                    return(Json("Chamado não pode ser alterado, o mesmo já se encontra fechado."));
                }
            }
            catch (Exception e)
            {
                return(Json(e.Message));
            }
        }
        public JsonResult EditarChamado(ChamadoModelEdicao model)
        {
            try
            {
                Funcionario f = (Funcionario)Session["funcionariologado"];

                ChamadoDal d = new ChamadoDal();

                Chamado chamado = d.FindById(model.IdChamado);

                if (chamado.Situacao == "Aberto")
                {
                    chamado.Solucao        = model.Solucao;
                    chamado.Situacao       = "Fechado";
                    chamado.DataFechamento = DateTime.Now;
                    chamado.Funcionario    = f;

                    d.SaveOrUpdate(chamado);

                    return(Json("Chamado Atualizado."));
                }
                else
                {
                    return(Json("Esse chamado já foi fechado."));
                }
            }
            catch (Exception e)
            {
                return(Json(e.Message));
            }
        }
        public JsonResult ExcluirChamado(ChamadoModelDelete model)
        {
            try
            {
                Cliente c = (Cliente)Session["clientelogado"];

                ChamadoDal d       = new ChamadoDal();
                Chamado    chamado = d.FindById(model.IdChamado);

                if (chamado.Situacao.Equals("Aberto"))
                {
                    d.Delete(chamado);

                    return(Json("Chamado excluído."));
                }
                else
                {
                    return(Json("Chamado não pode ser excluído, o mesmo já se encontra fechado."));
                }
            }
            catch (Exception e)
            {
                return(Json(e.Message));
            }
        }
        public JsonResult ConsultarChamado_ID(ChamadoModelResultado model)
        {
            try
            {
                ChamadoDal d = new ChamadoDal();

                Chamado chamado = d.FindById(model.IdChamado);

                var list = new List <ChamadoModelResultado>();

                if (chamado.Situacao.Equals("Aberto"))
                {
                    model.Assunto      = chamado.Assunto;
                    model.Descricao    = chamado.Descricao;
                    model.Situacao     = chamado.Situacao;
                    model.DataAbertura = chamado.DataAbertura;
                    model.Cliente_Nome = chamado.Cliente.Nome;

                    list.Add(model);

                    return(Json(list));
                }
                else
                {
                    model.Assunto          = chamado.Assunto;
                    model.Descricao        = chamado.Descricao;
                    model.Situacao         = chamado.Situacao;
                    model.DataAbertura     = chamado.DataAbertura;
                    model.Solucao          = chamado.Solucao;
                    model.Cliente_Nome     = chamado.Cliente.Nome;
                    model.Funcionario_Nome = chamado.Funcionario.Nome;
                    model.DataFechamento   = chamado.DataFechamento.ToString("dd/MM/yyyy");

                    list.Add(model);

                    return(Json(list));
                }
            }
            catch (Exception e)
            {
                return(Json(e.Message));
            }
        }
        public JsonResult EdicaoChamado(ChamadoModelEdicao model)
        {
            try
            {
                Cliente c = (Cliente)Session["clientelogado"];

                ChamadoDal d = new ChamadoDal();

                Chamado chamado = d.FindById(model.IdChamado);

                model.Assunto   = chamado.Assunto;
                model.Descricao = chamado.Descricao;

                return(Json(model));
            }
            catch (Exception e)
            {
                return(Json(e.Message));
            }
        }
        public JsonResult EdicaoChamado(ChamadoModelEdicao model)
        {
            try
            {
                Cliente c = (Cliente)Session["clientelogado"];

                ChamadoDal d = new ChamadoDal();

                Chamado chamado = d.FindById(model.IdChamado);

                model.Assunto = chamado.Assunto;
                model.Descricao = chamado.Descricao;

                return Json(model);
            }
            catch (Exception e)
            {
                return Json(e.Message);
            }
        }
        public JsonResult EdicaoChamado(ChamadoModelEdicao model)
        {
            try
            {
                Funcionario f = (Funcionario)Session["funcionariologado"];

                ChamadoDal d = new ChamadoDal();

                Chamado chamado = d.FindById(model.IdChamado);

                if (chamado.Situacao.Equals("Aberto"))
                {
                    model.Assunto = chamado.Assunto;
                    model.Descricao = chamado.Descricao;
                    model.Situacao = chamado.Situacao;
                    model.DataAbertura = chamado.DataAbertura;
                    model.Solucao = chamado.Solucao;
                    model.Cliente_Nome = chamado.Cliente.Nome;

                    return Json(model);
                }
                else
                {
                    model.Assunto = chamado.Assunto;
                    model.Descricao = chamado.Descricao;
                    model.Situacao = chamado.Situacao;
                    model.DataAbertura = chamado.DataAbertura;
                    model.DataFechamento = chamado.DataFechamento.ToString("dd/MM/yyyy");
                    model.Solucao = chamado.Solucao;
                    model.Cliente_Nome = chamado.Cliente.Nome;
                    model.Funcionario_Nome = chamado.Funcionario.Nome;

                    return Json(model);
                }

            }
            catch (Exception e)
            {
                return Json(e.Message);
            }
        }
        public JsonResult EdicaoChamado(ChamadoModelEdicao model)
        {
            try
            {
                Funcionario f = (Funcionario)Session["funcionariologado"];

                ChamadoDal d = new ChamadoDal();

                Chamado chamado = d.FindById(model.IdChamado);

                if (chamado.Situacao.Equals("Aberto"))
                {
                    model.Assunto      = chamado.Assunto;
                    model.Descricao    = chamado.Descricao;
                    model.Situacao     = chamado.Situacao;
                    model.DataAbertura = chamado.DataAbertura;
                    model.Solucao      = chamado.Solucao;
                    model.Cliente_Nome = chamado.Cliente.Nome;

                    return(Json(model));
                }
                else
                {
                    model.Assunto          = chamado.Assunto;
                    model.Descricao        = chamado.Descricao;
                    model.Situacao         = chamado.Situacao;
                    model.DataAbertura     = chamado.DataAbertura;
                    model.DataFechamento   = chamado.DataFechamento.ToString("dd/MM/yyyy");
                    model.Solucao          = chamado.Solucao;
                    model.Cliente_Nome     = chamado.Cliente.Nome;
                    model.Funcionario_Nome = chamado.Funcionario.Nome;

                    return(Json(model));
                }
            }
            catch (Exception e)
            {
                return(Json(e.Message));
            }
        }
        public JsonResult EditarChamado(ChamadoModelEdicao model)
        {
            try
            {
                Funcionario f = (Funcionario)Session["funcionariologado"];

                ChamadoDal d = new ChamadoDal();

                Chamado chamado = d.FindById(model.IdChamado);

                if (chamado.Situacao == "Aberto")
                {
                    chamado.Solucao = model.Solucao;
                    chamado.Situacao = "Fechado";
                    chamado.DataFechamento = DateTime.Now;
                    chamado.Funcionario = f;

                    d.SaveOrUpdate(chamado);

                    return Json("Chamado Atualizado.");
                }
                else
                {
                    return Json("Esse chamado já foi fechado.");
                }

            }
            catch (Exception e)
            {
                return Json(e.Message);
            }
        }
        public JsonResult ConsultarChamado_ID(ChamadoModelResultado model)
        {
            try
            {
                ChamadoDal d = new ChamadoDal();

                Chamado chamado = d.FindById(model.IdChamado);

                var list = new List<ChamadoModelResultado>();

                if (chamado.Situacao.Equals("Aberto"))
                {
                    model.Assunto = chamado.Assunto;
                    model.Descricao = chamado.Descricao;
                    model.Situacao = chamado.Situacao;
                    model.DataAbertura = chamado.DataAbertura;
                    model.Cliente_Nome = chamado.Cliente.Nome;

                    list.Add(model);

                    return Json(list);
                }
                else
                {
                    model.Assunto = chamado.Assunto;
                    model.Descricao = chamado.Descricao;
                    model.Situacao = chamado.Situacao;
                    model.DataAbertura = chamado.DataAbertura;
                    model.Solucao = chamado.Solucao;
                    model.Cliente_Nome = chamado.Cliente.Nome;
                    model.Funcionario_Nome = chamado.Funcionario.Nome;
                    model.DataFechamento = chamado.DataFechamento.ToString("dd/MM/yyyy");

                    list.Add(model);

                    return Json(list);
                }
            }
            catch (Exception e)
            {
                return Json(e.Message);
            }
        }
        public JsonResult EditarChamado(ChamadoModelEdicao model)
        {
            try
            {
                Cliente c = (Cliente)Session["clientelogado"];

                ChamadoDal d = new ChamadoDal();

                Chamado chamado = d.FindById(model.IdChamado);

                if (chamado.Situacao.Equals("Aberto"))
                {
                    chamado.Assunto = model.Assunto;
                    chamado.Descricao = model.Descricao;

                    d.SaveOrUpdate(chamado);

                    return Json("Chamado Atualizado.");
                }
                else
                {
                    return Json("Chamado não pode ser alterado, o mesmo já se encontra fechado.");
                }

            }
            catch (Exception e)
            {
                return Json(e.Message);
            }
        }
        public JsonResult ExcluirChamado(ChamadoModelDelete model)
        {
            try
            {
                Cliente c = (Cliente)Session["clientelogado"];

                ChamadoDal d = new ChamadoDal();
                Chamado chamado = d.FindById(model.IdChamado);

                if (chamado.Situacao.Equals("Aberto"))
                {
                    d.Delete(chamado);

                    return Json("Chamado excluído.");
                }
                else
                {
                    return Json("Chamado não pode ser excluído, o mesmo já se encontra fechado.");
                }

            }
            catch (Exception e)
            {
                return Json(e.Message);
            }
        }