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 IContratoDeRemuneracao ConverterDe(ContratoDeRemuneracaoBD contratoBD)
        {
            IEnumerable <IRegraDeRemuneracao> regras = null;
            //if (contratoBD.Regras?.Count() > 0)
            //    regras = contratoBD.Regras.Select(regBD => regBD.ConverterParaRegra());

            IFavorecimento favorecimentoDoContrato = null;
            //IFavorecimento favorecimentoDoContrato = contratoBD.Favorecimento.ConverterPara();

            IContratoDeRemuneracao contratoConvertido = new ContratoDeRemuneracao(contratoBD.Id, contratoBD.Nome, contratoBD.Vigencia, favorecimentoDoContrato, regras);

            return(contratoConvertido);
        }