Ejemplo n.º 1
0
 public Lei(TipoDeRegra regra, GameObject obj)
 {
     qualRegra      = regra;
     objetoUm       = obj;
     listaObjetos   = null;
     descricaoRegra = (qualRegra.ToString() + " " + objetoUm.GetComponent <buttonScript>().tipoDeBotao.nomeDeExibicao);
 }
Ejemplo n.º 2
0
 public CondicaoInicial(int botoes, TipoDeRegra regra0)
 {
     iniciarRegras();
     nDeBotoes = botoes;
     nDeRegrasIniciaisASeremSorteadas = 0;
     regrasIniciais[0] = regra0;
 }
Ejemplo n.º 3
0
 //Para substituicao
 public Lei(TipoDeRegra regra, GameObject obj, List <GameObject> lista)
 {
     qualRegra      = regra;
     objetoUm       = obj;
     listaObjetos   = lista;
     descricaoRegra = (qualRegra.ToString() + " " + objetoUm.GetComponent <buttonScript>().tipoDeBotao.nomeDeExibicao + " " + listaObjetos[0].GetComponent <buttonScript>().tipoDeBotao.nomeComPronome);
 }
Ejemplo n.º 4
0
        public ParametrosDeRegraDeRemuneracao(int id, string nome, int idContrato, decimal percentual, decimal desconto, TipoDeRegra tipo, dynamic parametros = null, PeriodoSimples vigencia = null)
        {
            PercentualARemunerar = percentual;
            PercentualDesconto   = desconto;
            Id            = id;
            IdContrato    = idContrato;
            NomePrincipal = nome;

            Vigencia         = vigencia;
            ParametrosExtras = parametros;
            Tipo             = tipo;

            if (vigencia == null)
            {
                Vigencia = new PeriodoSimples(DateTime.MinValue, DateTime.MaxValue);
            }
        }
Ejemplo n.º 5
0
        public async Task <IEnumerable <ParametrosDeRegraDeRemuneracao> > ListarPreRegrasDoContrato(IEnumerable <int> idsContratos, TipoDeRegra[] tiposDeRegras = null)
        {
            IEnumerable <RegraDeRemuneracaoBD> regrasBD;

            TipoDeRegra[] tiposValidos = tiposDeRegras ?? TipoDeRegra.GetAll();

            string[] tiposDeRegrasIds = tiposValidos.Select(tipo => tipo.Id).ToArray();
            using (var context = _fabricaDeContextos.CriaContextoDe <RemuneracaoContext>(TipoDeConexao.Remuneracao))
            {
                regrasBD = await(from regra in context.Regras
                                 where idsContratos.Contains(regra.IdContrato) &&
                                 tiposDeRegrasIds.Contains(regra.tipo) &&
                                 !regra.Deleted
                                 select regra).ToArrayAsync();
            }

            return(regrasBD.Select(reg => reg.ConverterParaRegra()).ToArray());
        }
Ejemplo n.º 6
0
        public async Task <IEnumerable <ParametrosDeRegraDeRemuneracao> > ListarPreRegrasVigentesDosContratosNoPeriodo(IEnumerable <int> idsContratos, PeriodoSimples periodo, TipoDeRegra[] tiposDeRegras = null)
        {
            IEnumerable <RegraDeRemuneracaoBD> regrasBD;

            TipoDeRegra[] tiposValidos = tiposDeRegras ?? TipoDeRegra.GetAll();

            string[] tiposDeRegrasIds = tiposValidos.Select(tipo => tipo.Id).ToArray();
            using (var context = _fabricaDeContextos.CriaContextoDe <RemuneracaoContext>(TipoDeConexao.Remuneracao))
            {
                //TODO: Olhar profiling do sql server para ver qual query o entityframework escolheu fazer
                regrasBD = await(from regra in context.Regras
                                 where idsContratos.Contains(regra.IdContrato) &&
                                 tiposDeRegrasIds.Contains(regra.tipo) &&
                                 regra.Vigencia.IntersectaIntervaloFechado(periodo) &&
                                 !regra.Deleted
                                 select regra).ToArrayAsync();
            }

            return(regrasBD.Select(reg => reg.ConverterParaRegra()).ToArray());
        }
Ejemplo n.º 7
0
 //Para nenhuma
 public Lei(TipoDeRegra regra)
 {
     qualRegra    = regra;
     objetoUm     = null;
     listaObjetos = null;
 }
Ejemplo n.º 8
0
    public Lei SorteiaObjetosParaUmaRegra(TipoDeRegra tipo)
    {
        List <GameObject> opcoesValidas;

        opcoesValidas = new List <GameObject>();

        for (int i = 0; i < quatroBotoes.Count; i++)
        {
            opcoesValidas.Add(quatroBotoes[i]);
        }

        if (tipo == TipoDeRegra.Substitua)
        {
            for (int i = 0; i < regras.Length; i++)
            {
                if (regras[i].qualRegra == TipoDeRegra.Substitua)
                {
                    Debug.Log("Duas substituicoes encontradas, alterando tipo de regra");
                    tipo = TipoDeRegra.Dobre;
                }
            }
        }

        switch (tipo)
        {
        case TipoDeRegra.Ignore:     //Ignora
            for (int i = 0; i < regras.Length; i++)
            {
                if (regras[i].qualRegra == TipoDeRegra.Dobre || regras[i].qualRegra == TipoDeRegra.Ignore)
                {
                    opcoesValidas.Remove(regras[i].objetoUm);
                }
            }
            if (opcoesValidas.Count == 0)
            {
                Debug.Log("Zero opções válidas encontradas para regra");
            }
            return(new Lei(TipoDeRegra.Ignore, opcoesValidas[Random.Range(0, (opcoesValidas.Count))]));

        case TipoDeRegra.Dobre:     //Dobra
            for (int i = 0; i < regras.Length; i++)
            {
                if (regras[i].qualRegra == TipoDeRegra.Dobre || regras[i].qualRegra == TipoDeRegra.Ignore)
                {
                    opcoesValidas.Remove(regras[i].objetoUm);
                }
            }
            if (opcoesValidas.Count == 0)
            {
                Debug.Log("Zero opções válidas encontradas para regra");
            }
            return(new Lei(TipoDeRegra.Dobre, opcoesValidas[Random.Range(0, (opcoesValidas.Count))]));

        case TipoDeRegra.Substitua:     //Substitui
            int a;
            int b;

            a = Random.Range(0, opcoesValidas.Count);
            do
            {
                b = Random.Range(0, opcoesValidas.Count);
            } while (b == a);

            return(new Lei(TipoDeRegra.Substitua, opcoesValidas[a], new List <GameObject> {
                opcoesValidas[b]
            }));

        default:
            Debug.Log("Sorteio de regra defaultou");
            return(null);
        }
    }
Ejemplo n.º 9
0
 public Regra(TipoDeRegra descricao, double valor, int quantidadeDePontos)
 {
     Descricao          = descricao;
     Valor              = valor;
     QuantidadeDePontos = quantidadeDePontos;
 }