public ActionResult Autenticar(LoginViewModel model, string returnUrl)
        {
            var log = new LogRepository();

            AbandonarSessao();

            if (ModelState.IsValid)
            {
                try
                {
                    var _cripto = new Criptografia();
                    var _utils = new Util();
                    string _senha = _cripto.Executar(model.Senha.Trim().ToString(), _utils.ChaveCripto, Criptografia.TipoNivel.Baixo, Criptografia.TipoAcao.Encriptar, Criptografia.TipoCripto.Números);

                    bool valido = this._usuarioService.ValidarUsuario(model.NomeUsuario, _senha);

                    if (valido)
                    {
                        // TODO:14/04/2016
                        var ret = new UsuarioRepository().VerificaServicoPerfil(model.NomeUsuario, _senha);
                        if (ret.CodigoRetorno != 0)
                        {
                            //return RedirectToRoute("Logout", new { msg = ret.Mensagem });
                            return RedirectToAction("Index", new { msg = ret.Mensagem });
                        }

                        //TODO: Andre 27/04/2016 int _idUsuario = new UsuarioRepository().GetUsuario(model.NomeUsuario).ID;
                        Session["ClsUsuario"] = (Usuario)new UsuarioRepository().GetUsuarioSessao(model.NomeUsuario);

                        bool _autenticado = this._authenticatioService.AuthenticateUser(this.HttpContext, model.NomeUsuario, model.Senha, model.ManterConectado);
                        if (_autenticado)
                        {
                            Session["NomeUsuario"] = model.NomeUsuario;

                            //TODO: 07/03/2016 Verifica se foi selecionado o Relembre-me e cria um cokie para armazenar o nome do usuário.
                            if (Request.Cookies["Login"] == null)
                            {
                                if (model.ManterConectado)
                                {
                                    HttpCookie cokLogin = new HttpCookie("Login");
                                    cokLogin["username"] = model.NomeUsuario;
                                    cokLogin["lembrarnome"] = "sim";
                                    cokLogin.Expires = DateTime.Now.AddDays(1d);
                                    Response.Cookies.Add(cokLogin);
                                }
                            }
                            else
                            {
                                if (model.ManterConectado)
                                {
                                    HttpCookie cokLogin = new HttpCookie("Login");
                                    cokLogin["username"] = model.NomeUsuario;
                                    cokLogin["lembrarnome"] = "sim";
                                    Response.Cookies.Set(cokLogin);
                                }
                                if (model.ManterConectado == false)
                                {
                                    HttpCookie cokLogin = new HttpCookie("Login");
                                    cokLogin["username"] = "";
                                    cokLogin["lembrarnome"] = "nao";
                                    Response.Cookies.Set(cokLogin);
                                }
                            }

                            var cli = new ClienteRepository();
                            cli.PrimeiroClienteServicoPadrao(model.NomeUsuario, model.Senha);

                            if (cli.Servico == null)
                            {
                                return RedirectToAction("Index", new { msg = "Nenhum Cliente e Serviço Padrão selecionado. Por favor,  entre em contato com o administrador do sistema." });
                                //TempData["Error"] = "Nenhum Cliente e Serviço Padrão selecionado...";
                            }

                            Session["IdCliente"] = cli.TCliente.ID;
                            var spr = new StoragePrivateRepository(IdCliente_Atual);      //TODO: 30/06/2016
                            Session["Nuvem"] = spr.Nuvem;
                            Session["NomeCliente"] = cli.TCliente.Descricao;
                            Session["NomeServico"] = cli.Servico;
                            Session["IdServico"] = cli.idServico;//aqui

                            //TODO: Andre 10/05/2016
                            var usu = new Usuario(){ ID=UsuarioAtual.ID, ServicoID=cli.idServico, ClienteID=cli.TCliente.ID};
                            var retorno = new LicensaRepository().CarregaLicensa(usu, 1);
                            if (retorno.CodigoRetorno < 0)
                            {
                                ViewBag.Atencao = retorno.Mensagem;
                                TempData["Msg"] = retorno.Mensagem;
                            }
                            else
                            {
                                // LOG: Login Autenticado -- Cesar
                                log.RegistrarLOG(cli.TCliente.ID, cli.idServico, 0, 0, 1, 1, 0, 0, model.NomeUsuario);
                                log.RegistrarLOGDetalhe(1, model.NomeUsuario);

                                return RedirectToRoute(new { action = "../Home", controller = "", area = "" });// Redirect (returnUrl ?? FormsAuthentication.DefaultUrl);

                            }

                        }

                        FormsAuthentication.SetAuthCookie(model.NomeUsuario, false);
                    }
                }
                catch (Exception ex) {
                    //ModelState.AddModelError("Error", ex.Message);
                    //LOG: Login Não Autenticado
                    new Excecao("Erro acesso", "Erro acesso ao banco de dados", ex);
                    log.RegistrarLOG(0, 0, 0, 0, 1, 2, 0, 0, model.NomeUsuario);
                    log.RegistrarLOGDetalhe(2, model.NomeUsuario);
                    ViewBag.Atencao = ex.Message;
                    TempData["Msg"] = ex.Message;
                }
            }
            return View("Index");
        }
        public JsonResult AjaxCallTrocarClienteAtual(int idCliente)
        {
            var usuario = default(Usuario);
            var cliente = default(Cliente);

            try
            {
                usuario = this._usuarioService.GetUsuario(User.Identity.Name);
                if (usuario == null) { throw new Exception("Não foi possível trocar a empresa atual."); }

                cliente = (new Cliente { ID = idCliente, Descricao = "TEsteF" });//usuario.Servicos.Where(e => e.IdCliente == idCliente).FirstOrDefault().Cliente;

                if (usuario == null) { throw new Exception("Não foi possível trocar a empresa atual."); }

                var spr = new StoragePrivateRepository(idCliente);      //TODO: 30/06/2016
                Session["Nuvem"] = spr.Nuvem;

                switch (cliente.ID)
                {
                    case 1: // sanofi
                        UserDataCookieHelper.CreateUserDataCookie(new UserDataEntity()
                        {
                            IdClienteAtual = idCliente,
                            ClienteAtual = cliente,
                            UrlCSSClienteAtual = Url.Content("~/assets/themes/sanofi-theme.css")
                        });

                        break;
                    case 2: // medley
                        UserDataCookieHelper.CreateUserDataCookie(new UserDataEntity()
                        {
                            IdClienteAtual = idCliente,
                            ClienteAtual = cliente,
                            UrlCSSClienteAtual = Url.Content("~/assets/themes/medley-theme.css")

                        });
                        break;
                }

                //HttpContext.Response.Expires = -1;
                //HttpContext.Response.Cache.SetExpires(DateTime.Now.AddDays(-1));
            }
            catch (Exception ex) { return Json(new RetornoViewModel(false, ex.Message)); }

            return Json(new RetornoViewModel(true, null));
        }
 public void TesteNuvem()
 {
     var spr    = new StoragePrivateRepository(IdCliente_Atual);
     spr.ListarArqsAzure();
 }