public JsonResult ResetarSenhaLogin(string email, string senha)
        {
            AgroApp.Models.Usuario Usuario = dbCooperativa.Usuario
                                             .Where(a => a.Cd_Senha.TrimEnd().Equals("1234") &&
                                                    a.Ds_Email.TrimEnd().Equals(email))
                                             .FirstOrDefault();

            if (Usuario != null)
            {
                Usuario.Cd_Senha = senha;
                dbCooperativa.SaveChanges();
                return(Json(new { data = "ok", results = 0, success = true }, JsonRequestBehavior.AllowGet));
            }
            //
            return(Json(new { data = "nok", results = 0, success = true }, JsonRequestBehavior.AllowGet));
        }
 public JsonResult Login(string email, string senha, string browser)
 {
     // Valida se existe um usuário com o email informado
     AgroApp.Models.Usuario usuario = null;
     try
     {
         usuario = dbCooperativa.Usuario.Where(a => a.Ds_Email.ToLower().Trim().Equals(email.ToLower().Trim())).FirstOrDefault();
     }
     catch (Exception ex)
     {
         //Utils.Utils.Log.GravaLogExc(ex);
         return(Json(new { data = ex.Message, results = 0, success = true, lojaunica = true }, JsonRequestBehavior.AllowGet));
     }
     //
     if (usuario != null)
     {
         // Valida se está logado em outra tela
         //string sret = GravaBloqueioLogin(usuario.Cd_Empresa, Convert.ToInt32(usuario.Cd_Loja), usuario.Cd_Usuario, usuario.Cd_Empresa + "ß" + usuario.Cd_Loja + "ß" + usuario.Ds_Email, browser);
         //
         //if (!string.IsNullOrEmpty(sret) && !sret.Equals("nok"))
         //{
         AgroApp.Models.Cargo cargo = dbCooperativa.Cargo.Where(a => a.Cd_Empresa == usuario.Cd_Empresa && a.Cd_Cargo == usuario.Cd_Cargo).FirstOrDefault();
         //
         if (cargo != null)
         {
             if (cargo.Bt_Ativo != null && cargo.Bt_Ativo == true)
             {
                 //senha = Utils.Security.Encryption.DecryptStringAES(senha);
                 //
                 if (usuario.Cd_Senha.TrimEnd().Equals(senha.TrimEnd()))
                 {
                     if (senha.Equals("1234"))
                     {
                         return(Json(new { data = "senha", results = 0, success = true, lojaunica = true }, JsonRequestBehavior.AllowGet));
                     }
                     else if (usuario.Dt_Exclusao != null || usuario.Dt_Bloqueio != null)     // nos dois vale o inativo
                     {
                         if (usuario.Dt_Exclusao != null && usuario.Dt_Bloqueio != null)
                         {
                             return(Json(new { data = "inativo_bloqueado", results = 0, success = true, lojaunica = true }, JsonRequestBehavior.AllowGet));
                         }
                         else if (usuario.Dt_Exclusao != null)
                         {
                             return(Json(new { data = "inativo", results = 0, success = true, lojaunica = true }, JsonRequestBehavior.AllowGet));
                         }
                         else
                         {
                             return(Json(new { data = "bloqueado", results = 0, success = true, lojaunica = true }, JsonRequestBehavior.AllowGet));
                         }
                     }
                     else
                     {
                         bool multiloja = true;
                         //
                         return(CarregaUsuario(usuario.Cd_Empresa, Convert.ToInt32(usuario.Cd_Loja), usuario.Cd_Usuario, usuario.Ds_Email, Convert.ToInt32(usuario.Cd_Loja), multiloja));
                     }
                 }
                 else
                 {
                     return(Json(new { data = "usuario", results = 0, success = true, lojaunica = true }, JsonRequestBehavior.AllowGet));
                 }
             }
             else
             {
                 return(Json(new { data = "cargoinativo", results = 0, success = true, lojaunica = true }, JsonRequestBehavior.AllowGet));
             }
         }
         else     // usuário sem cargo
         {
             return(Json(new { data = "semcargo", results = 0, success = true, lojaunica = true }, JsonRequestBehavior.AllowGet));
         }
         //}
         //else
         //{
         //    return Json(new { data = "bloqueado_sessao", results = 0, success = true, lojaunica = true }, JsonRequestBehavior.AllowGet);
         //}
     }
     else
     {
         // email não encontrado
         return(Json(new { data = "email", results = 0, success = true, lojaunica = true }, JsonRequestBehavior.AllowGet));
     }
 }
        public JsonResult CarregaUsuario(int empresa_usuario, int loja_usuario, string usuario, string email, int loja_logado, bool multiloja)
        {
            AgroApp.Models.Usuario Usuario = new AgroApp.Models.Usuario();
            AgroApp.Models.Cargo   cargo;

            Usuario = dbCooperativa
                      .Usuario
                      .Where(a => a.Cd_Empresa == empresa_usuario &&
                             a.Cd_Loja == loja_usuario &&
                             a.Ds_Email.Equals(email) &&
                             a.Cd_Usuario.TrimEnd().Equals(usuario.TrimEnd()))
                      .FirstOrDefault();
            //
            if (Usuario != null)
            {
                cargo = dbCooperativa.Cargo.Where(a => a.Cd_Empresa == Usuario.Cd_Empresa && a.Cd_Cargo == Usuario.Cd_Cargo).FirstOrDefault();
                //
                AgroApp.Models.Loja    oloja                   = null;
                List <Menu_AcaoModels> lista_menu_acao         = null;
                List <Menu_AcaoModels> lista_menu_acao_usuario = null;
                //
                if (Usuario.Cd_Usuario.ToLower().Trim().Equals("master"))
                {
                    oloja = dbCooperativa.Loja.Where(l => l.Cd_Loja == loja_logado).FirstOrDefault();
                    //
                    string sql = string.Empty;
                    sql = @"SELECT * FROM Menu_Acao";
                    //
                    DataTable oDataTable = this.ExecutaSQL(sql);
                    if (oDataTable.Rows != null && oDataTable.Rows.Count > 0)
                    {
                        lista_menu_acao = new List <Menu_AcaoModels>();
                        foreach (DataRow item in oDataTable.Rows)
                        {
                            Menu_AcaoModels tmp = new Menu_AcaoModels();
                            tmp.Cd_Acao     = Convert.ToInt32(item["Cd_Acao"]);
                            tmp.Cd_Menu     = Convert.ToInt32(item["Cd_Menu"]);
                            tmp.Cd_MenuAcao = Convert.ToInt32(item["Cd_MenuAcao"]);
                            lista_menu_acao.Add(tmp);
                        }
                    }
                }
                else
                {
                    oloja = dbCooperativa.Loja.Where(l => l.Cd_Loja == loja_logado).FirstOrDefault();
                    //
                    if (loja_usuario == 0)
                    {
                        lista_menu_acao = (from mac in dbCooperativa.Menu_AcaoCargo
                                           join ma in dbCooperativa.Menu_Acao on mac.Cd_MenuAcao equals ma.Cd_MenuAcao
                                           where mac.Cd_Empresa == empresa_usuario && mac.Cd_Cargo == Usuario.Cd_Cargo
                                           select new Menu_AcaoModels {
                            Cd_MenuAcao = mac.Cd_MenuAcao, Cd_Acao = ma.Cd_Acao, Cd_Menu = ma.Cd_Menu
                        }).ToList();
                    }
                    else // adicionado a validação fl_loja
                    {
                        lista_menu_acao = (from mac in dbCooperativa.Menu_AcaoCargo
                                           join ma in dbCooperativa.Menu_Acao on mac.Cd_MenuAcao equals ma.Cd_MenuAcao
                                           where mac.Cd_Empresa == empresa_usuario && mac.Cd_Cargo == Usuario.Cd_Cargo
                                           select new Menu_AcaoModels {
                            Cd_MenuAcao = mac.Cd_MenuAcao, Cd_Acao = ma.Cd_Acao, Cd_Menu = ma.Cd_Menu
                        }).ToList();
                    }
                    //
                    //lista_menu_acao_usuario = (from mau in dbCooperativa.Menu_AcaoUsuario
                    //                           join ma in dbCooperativa.Menu_Acao on mau.Cd_MenuAcao equals ma.Cd_MenuAcao
                    //                           where mau.Cd_Empresa == empresa_usuario && mau.Cd_Usuario.Equals(usuario.TrimEnd()) && mau.Fl_Ativo
                    //                           select new Menu_AcaoModels { Cd_MenuAcao = mau.Cd_MenuAcao, Cd_Acao = ma.Cd_Acao, Cd_Menu = ma.Cd_Menu }).ToList();
                    //
                    //foreach (Menu_AcaoModels item in lista_menu_acao_usuario)
                    //{
                    //    lista_menu_acao.Add(item);
                    //}
                }
                //
                var lista_menu = (from me in dbCooperativa.Menu
                                  join mo in dbCooperativa.Modulo on me.Cd_Modulo equals mo.Cd_Modulo
                                  where me.Fl_Mostra.Value
                                  select new MenuModels
                {
                    Cd_Menu = me.Cd_Menu,
                    Cd_Menu_Pai = me.Cd_Menu_Pai,
                    Cd_Modulo = me.Cd_Modulo,
                    Ds_Funcao = me.Ds_Funcao,
                    Ds_Menu = me.Ds_Menu,
                    Ds_Menu_En = me.Ds_Menu_En,
                    Ds_Menu_Es = me.Ds_Menu_Es,
                    Ds_Modulo = mo.Ds_Modulo,
                    Ds_Imagem = me.Ds_Imagem
                }).ToList();
                //
                List <AgroApp.Models.Acao> lista_acoes = dbCooperativa.Acao.ToList();
                AgroApp.Models.Empresa     oempresa    = dbCooperativa.Empresa.Where(e => e.EMP_Codigo == oloja.Cd_Empresa).FirstOrDefault();
                language = Convert.ToInt32(oloja.Cd_Idioma);
                switch (language)
                {
                case 2: Session["Culture"] = "EN-US"; break;

                case 3: Session["Culture"] = "ES-ES"; break;

                default: Session["Culture"] = "PT-BR"; break;
                }
                //
                SessaoModels sessaoModels = new SessaoModels();
                //
                sessaoModels.SES_Cd_Idioma        = language;
                sessaoModels.SES_Cd_Cargo         = Usuario.Cd_Cargo.HasValue ? Usuario.Cd_Cargo.Value : -1;
                sessaoModels.SES_Cd_Empresa       = oloja.Cd_Empresa;
                sessaoModels.SES_Cd_Loja          = oloja.Cd_Loja;
                sessaoModels.SES_Qt_Sessao        = oloja.Qt_Sessao.HasValue ? oloja.Qt_Sessao.Value : 15;
                sessaoModels.SES_Cd_Usuario       = usuario;
                sessaoModels.SES_Corrente         = true;
                sessaoModels.SES_Cd_Mercado       = oloja.Cd_Mercado;
                sessaoModels.SES_Empresa_Fantasia = StringExtensions.Camelize("pt-BR", oempresa != null ? oempresa.EMP_Nome : "");
                sessaoModels.SES_Loja_Fantasia    = StringExtensions.Camelize("pt-BR", oloja.Ds_Fantasia);
                sessaoModels.SES_Representante    = "";
                sessaoModels.SES_Usuario_Nome     = StringExtensions.Camelize("pt-BR", Usuario.Ds_Usuario);
                sessaoModels.SES_Menu_Acao        = lista_menu_acao;
                sessaoModels.SES_Menu             = lista_menu;
                sessaoModels.SES_Lista_Acoes      = lista_acoes;
                sessaoModels.SES_Email            = Usuario.Ds_Email;
                sessaoModels.SES_Cd_Representante = Usuario.Cd_Representante.HasValue ? Usuario.Cd_Representante.Value : 0;
                //
                if (Session["Data_Login"] != null)
                {
                    sessaoModels.SES_Data_Login = Session["Data_Login"].ToString();
                }
                //
                Session["usuario"] = usuario;
                //
                return(Json(new { data = sessaoModels, results = 1, success = true, lojaunica = multiloja }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(new { data = "NOK", results = 0, success = false, lojaunica = multiloja }, JsonRequestBehavior.AllowGet));
            }
        }