public AutorizacaoHistorico(DateTime data, Usuario usuario, NotadeCompra nota, PapelAprovacao papel)
 {
     GerarNovoId();
     Data    = data;
     Usuario = usuario;
     Nota    = nota;
     Papel   = papel;
 }
 public Usuario(string login, string senha, decimal valorMinimo, decimal valorMaxino, PapelAprovacao papel)
 {
     GerarNovoId();
     Login       = login;
     Senha       = senha;
     ValorMinimo = valorMinimo;
     ValorMaxino = valorMaxino;
     Papel       = papel;
 }
 public Usuario(Guid id, string login, string senha, decimal valorMinimo, decimal valorMaxino, PapelAprovacao papel)
 {
     Id          = id;
     Login       = login;
     Senha       = senha;
     ValorMinimo = valorMinimo;
     ValorMaxino = valorMaxino;
     Papel       = papel;
 }
        public static bool VerificarConfiguracaoAutorizacao(IAplicacaoDbContext context, NotadeCompra nota, PapelAprovacao papel)
        {
            var autorizacao = context.AutorizacaoHistoricos.Where(x => x.Nota.Id == nota.Id).ToList();

            var nvistos     = autorizacao.Where(x => x.Papel == PapelAprovacao.Visto)?.Count() ?? 0;
            var naprovacoes = autorizacao.Where(x => x.Papel == PapelAprovacao.Aprovador)?.Count() ?? 0;


            var config = context.AutorizacaoConfigs.FirstOrDefault(x => x.ValorMinimo <= nota.ValorTotal && x.ValorMaxino >= nota.ValorTotal);

            switch (papel)
            {
            case PapelAprovacao.Visto:
                nvistos++;
                break;

            case PapelAprovacao.Aprovador:
                naprovacoes++;
                break;

            default:
                break;
            }
            if (config.QtdeVistos == nvistos && config.QtdeAprovacoes == naprovacoes)
            {
                return(true);
            }

            return(false);
        }