public ContratoDeRemuneracaoBD ConverterDe(IContratoDeRemuneracao contrato)
        {
            ContratoDeRemuneracaoBD contratoConvertido = new ContratoDeRemuneracaoBD(TipoDeContratoDeRemuneracaoBancoDeDados.Padrao);

            if (!(contrato is ContratoDeRemuneracao))
            {
                throw new ArgumentException();
            }

            var contratoPadrao = contrato as ContratoDeRemuneracao;

            contratoConvertido.Id      = contrato.Id;
            contratoConvertido.Nome    = contrato.NomePrincipal;
            contratoConvertido.Deleted = contrato.Deleted;
            if (contrato.Favorecimento != null)
            {
                contratoConvertido.Favorecimento = TipoDeFavorecimentoBD.Get(contrato.Favorecimento.Tipo.Id).ConverteDe(contrato.Favorecimento, contrato.Id, Definicoes.ID_VINCULO_FAVORECIMENTO_CONTRATO);
            }

            if (contrato.Regras != null)
            {
                contratoConvertido.Regras = contrato.Regras.Select(reg => TipoDeRegraBD.Get(reg.Tipo.Id).ConverteDe(reg));
            }

            contratoConvertido.Vigencia = contratoPadrao.Vigencia;



            return(contratoConvertido);
        }
        public RegraDeRemuneracaoBD(TipoDeRegraBD tipo, IRegraDeRemuneracao regra) : this()
        {
            Vigencia = new PeriodoSimples(regra.Vigencia.Inicio.Date, regra.Vigencia.Fim.Date);

            Id         = regra.Id;
            IdContrato = regra.Parametros.IdContrato;
            Nome       = regra.NomePrincipal;
            this.tipo  = tipo.Id;
        }
 public RegraDeRemuneracaoBD(TipoDeRegraBD tipo, ParametrosDeRegraDeRemuneracao parametros) : this()
 {
     Vigencia                = new PeriodoSimples(parametros.Vigencia.Inicio.Date, parametros.Vigencia.Fim.Date);
     Id                      = parametros.Id;
     IdContrato              = parametros.IdContrato;
     Nome                    = parametros.NomePrincipal;
     this.tipo               = tipo.Id;
     this.Percentual         = parametros.PercentualARemunerar;
     this.PercentualDesconto = parametros.PercentualDesconto;
 }