/// <summary>
        /// usa o bootstrap para formatar uma mensagem de info no _layout.chtml
        /// </summary>
        /// <param name="mensagem">string - mensagem a ser exibida</param>
        /// <param name="tempData">TempDataDictionary - o tempdata da action ou da view</param>
        /// <returns>MensagemParaUsuario - retorna esse objeto formatado, além de colocar a mensagem no contexto</returns>
        public static MensagemParaUsuario MensagemInfo(string mensagem, TempDataDictionary tempData = null)
        {
            var result = new MensagemParaUsuario
            {
                Titulo   = "Informação",
                Mensagem = mensagem,
                Classe   = "alert alert-info",
                Sucesso  = null
            };

            if (tempData != null)
            {
                tempData["MensagemUsuario"] = result;
            }

            return(result);
        }
        /// <summary>
        /// usa o bootstrap para formatar uma mensagem de sucesso no _layout.chtml
        /// </summary>
        /// <param name="mensagem">string - mensagem a ser exibida</param>
        /// <param name="tempData">TempDataDictionary - o tempdata da action ou da view</param>
        /// <returns>MensagemParaUsuario - retorna esse objeto formatado, além de colocar a mensagem no contexto</returns>
        public static MensagemParaUsuario MensagemSucesso(string mensagem, TempDataDictionary tempData = null)
        {
            var result = new MensagemParaUsuario
            {
                Titulo   = "Sucesso",
                Mensagem = mensagem,
                Classe   = "alert alert-success",
                Sucesso  = true
            };

            if (tempData != null)
            {
                tempData["MensagemUsuario"] = result;
            }


            return(result);
        }
        /// <summary>
        /// usa o bootstrap para formatar uma mensagem de erro no _layout.chtml
        /// </summary>
        /// <param name="mensagem">string - mensagem a ser exibida</param>
        /// <param name="tempData">TempDataDictionary - o tempdata da action ou da view</param>
        /// <param name="modelState">ModelStateDictionary - modelState vindo da action, para marcar onde estão os erros</param>
        /// <param name="ErrorKey">string - nome de uma propriedade para marcar em caso de erro</param>
        /// <returns>MensagemParaUsuario - retorna esse objeto formatado, além de colocar a mensagem no contexto</returns>
        public static MensagemParaUsuario MensagemErro(string mensagem, TempDataDictionary tempData = null, ModelStateDictionary modelState = null, string ErrorKey = "Erro")
        {
            var result = new MensagemParaUsuario
            {
                Titulo   = "Erro",
                Mensagem = mensagem,
                Classe   = "alert alert-danger",
                Sucesso  = false
            };

            if (tempData != null)
            {
                tempData["MensagemUsuario"] = result;
            }

            if (modelState != null)
            {
                modelState.AddModelError(string.IsNullOrWhiteSpace(ErrorKey) ? "Erro" : ErrorKey, mensagem);
            }

            return(result);
        }