public static string DeveTerTamanho(this string str, int tamanhoExato, Func <string> mensagem = null)
        {
            Assegure.NaoNulo(str, $"{mensagem()}. Valor null");

            Assegure.Que(str.Length == tamanhoExato,
                         () => $"{mensagem()}. {str.Length} caracteres, quando deveria ter {tamanhoExato}. Valor: #{str}#");

            return(str);
        }
        public static void Validar(DateTime?dataInicial, DateTime?dataFinal)
        {
            Assegure.Que(dataInicial != null, "Informe uma Data Inicial válida");

            Assegure.Que(dataFinal != null, "Informe uma Data Final válida");


            Assegure.Que(dataInicial != DateTime.MinValue, () => $"Data inicial inválida: {dataInicial}");

            Assegure.Que(dataFinal != DateTime.MinValue, () => $"Data Final inválida: {dataFinal}");

            Assegure.Que(dataInicial <= dataFinal, "Data Inicial deve ser menor ou igual a Data Final");
        }