public ActionResult GeneroCategorias(string nome, string cod)
        {
            try
            {
                List<Categoria> lstproduto = new List<Categoria>();
                List<Cidade> lstcidade = new List<Cidade>();

                //carregando categorias
                int codigo = 0;
                if (IsDigitsOnly(cod) && cod != "0")
                    codigo = Convert.ToInt16(cod);

                if (nome == null || nome == "")
                {
                    if (cod == "0")//só tem o nome pra buscar
                    {
                        lstproduto = db.Produtos.Include("categoria").Where(a => a.Status == 0).Select(b => b.categoria).ToList();
                        lstcidade = db.Produtos.Include("Cidade").Where(a => a.Status == 0).Select(b => b.Cidade).ToList();
                    }
                    else if (!IsDigitsOnly(cod)) //busca nas subcategorias
                    {
                        lstproduto = db.Produtos.Include("categoria").Where(a => a.Status == 0 && a.categoria.categoriaPai == cod).Select(b => b.categoria).ToList();
                        lstcidade = db.Produtos.Include("Cidade").Where(a => a.Status == 0 && a.categoria.categoriaPai == cod).Select(b => b.Cidade).ToList();
                    }
                    else //busca entre as categorias
                    {
                        int codcat = Convert.ToInt16(cod);
                        string nomecat = db.Categorias.SingleOrDefault(a => a.categoriaCod == codcat).categoriaNome;// Where(a=> a.categoriaCod == cod).Select()

                        lstproduto = db.Produtos.Include("categoria").Where(a => a.Status == 0 && (a.categoria.categoriaCod == codigo || a.categoria.categoriaPai == nomecat)).Select(b => b.categoria).ToList();
                        lstcidade = db.Produtos.Include("Cidade").Where(a => a.Status == 0 && (a.categoria.categoriaCod == codigo || a.categoria.categoriaPai == nomecat)).Select(b => b.Cidade).ToList();
                    }
                }
                else
                {
                    if (cod == "0")//só tem o nome pra buscar
                    {
                        lstproduto = db.Produtos.Include("categoria").Where(a => a.Nome.Contains(nome) && a.Status == 0).Select(b => b.categoria).ToList();
                        lstcidade = db.Produtos.Include("Cidade").Where(a => a.Nome.Contains(nome) && a.Status == 0).Select(b => b.Cidade).ToList();
                    }
                    else if (!IsDigitsOnly(cod)) //busca nas subcategorias
                    {
                        lstproduto = db.Produtos.Include("categoria").Where(a => a.Nome.Contains(nome) && a.Status == 0 && a.categoria.categoriaPai == cod).Select(b => b.categoria).ToList();
                        lstcidade = db.Produtos.Include("Cidade").Where(a => a.Nome.Contains(nome) && a.Status == 0 && a.categoria.categoriaPai == cod).Select(b => b.Cidade).ToList();
                    }
                    else //busca entre as categorias
                    {
                        lstproduto = db.Produtos.Include("categoria").Where(a => a.Nome.Contains(nome) && a.Status == 0 && a.categoria.categoriaCod == codigo).Select(b => b.categoria).ToList();
                        lstcidade = db.Produtos.Include("Cidade").Where(a => a.Nome.Contains(nome) && a.Status == 0 && a.categoria.categoriaCod == codigo).Select(b => b.Cidade).ToList();
                    }
                }
                PesquisaViewModel pesquisa = new PesquisaViewModel();
                pesquisa.categorias = new List<Categoria>();
                foreach (var item in lstproduto)
                {
                    pesquisa.categorias.Add(item);
                }

                //carregando cidades
                pesquisa.cidades = new List<Cidade>();

                foreach (var item in lstcidade)
                {
                    pesquisa.cidades.Add(item);
                }

                ViewData["nome"] = nome;
                if (cod == null)
                {
                    ViewData["cod"] = 0;
                }
                else
                {
                    ViewData["cod"] = cod;
                }
                return PartialView(pesquisa);
            }
            catch (Exception ex)
            {
                Mail email = new Mail();
                email.Subject = "erro genero2";
                email.Body = "GeneroCategorias(string nome, string cod)" + nome + cod + ex.StackTrace;
                SendMailerController a = new SendMailerController();
                a.Index(email);
            }
            return View("Error");
        }
        public ActionResult GeneroCategoriaprinc()
        {
            try
            {
                PesquisaViewModel pesquisa = new PesquisaViewModel();
                pesquisa.categorias = new List<Categoria>();
                pesquisa.categorias = db.Categorias.Where(a => a.categoriaPai == "0").ToList();

                return PartialView("GeneroCategorias", pesquisa);
            }
            catch (Exception ex)
            {

                Mail email = new Mail();
                email.Subject = "errogenero1";
                email.Body = " GeneroCategoriaprinc()" + ex.StackTrace;
                SendMailerController a = new SendMailerController();
                a.Index(email);
            }
            return View("Error");
        }