public ActionResult FormLogin(FormLoginModel model)
        {
            try
            {
                string redirectToUrl = Url.Action("Index", "Dashboard");

                if (string.IsNullOrEmpty(model.Email))
                {
                    model.ReturnAttribute.AddError("Email", "Preencha o e-mail.");
                }
                else
                {
                    if (!Helpers.Validation.IsValidEmail(model.Email))
                    {
                        model.ReturnAttribute.AddError("Email", "Preencha um e-mail válido.");
                    }
                }

                if (string.IsNullOrEmpty(model.Password))
                {
                    model.ReturnAttribute.AddError("Senha", "Preencha a senha.");
                }

                if (ModelState.IsValid)
                {
                    string senha        = Tropical.Infrastructure.Util.Cryptography.EncryptIt(model.Password);
                    bool   AccessDenied = true;

                    StoreAPI       storeAPI      = new StoreAPI();
                    FormLoginModel userValidated = (storeAPI.GetByLogin(model.Email, senha)).Cast <FormLoginModel>();

                    if (userValidated != null)
                    {
                        Tropical.Infrastructure.Model.User user = new Tropical.Infrastructure.Model.User()
                        {
                            Id    = userValidated.Id.ToString(),
                            Nome  = userValidated.Name,
                            Email = userValidated.Email
                        };

                        UsuarioClientePerfilModel objUsuarioClientePerfilModel = new UsuarioClientePerfilModel();
                        objUsuarioClientePerfilModel.PerfilId         = 1;
                        objUsuarioClientePerfilModel.Cliente          = new ClienteModel();
                        objUsuarioClientePerfilModel.Cliente.Id       = userValidated.Id;
                        objUsuarioClientePerfilModel.Cliente.Logotipo = Url.Content("~/img/avatars/male.png");  // userValidated.Logo;
                        objUsuarioClientePerfilModel.Cliente.Nome     = userValidated.Name;

                        Tropical.Infrastructure.Util.SessionData.SessionWriter("PerfilSelecionadoLogado", objUsuarioClientePerfilModel);

                        Tropical.Infrastructure.Util.SessionData.SessionWriter("UsuarioLogado", user);
                        FormsAuthentication.SetAuthCookie(userValidated.Id.ToString(), model.RememberMe);
                        AccessDenied = false;
                    }

                    if (!AccessDenied)
                    {
                        model.ReturnAttribute.Status      = Helpers.Constantes.StatusRetorno.Sucesso;
                        model.ReturnAttribute.Mensagem    = "Acessando o Painel de Controle, aguarde...";
                        model.ReturnAttribute.RedirectUrl = redirectToUrl;
                    }
                    else
                    {
                        model.ReturnAttribute.Status   = Helpers.Constantes.StatusRetorno.Erro;
                        model.ReturnAttribute.Mensagem = "Dados de acesso inválidos, verifique e tente novamente.";
                    }
                }
            }
            catch (ERPException exception)
            {
                model.ReturnAttribute.Status   = Helpers.Constantes.StatusRetorno.Erro;
                model.ReturnAttribute.Mensagem = exception.Mensagem;
            }
            catch (Exception a)
            {
                model.ReturnAttribute.Status   = Helpers.Constantes.StatusRetorno.Erro;
                model.ReturnAttribute.Mensagem = Helpers.Constantes.MsgNaoFoiPossivelCompletarOperacao;
            }

            return(View(model));
        }