public async Task <int> InserirAsync(IContratoDeRemuneracao modelo)
        {
            var tipo = TipoDeContratoDeRemuneracaoBancoDeDados.Parse(modelo.Tipo.Name);
            ContratoDeRemuneracaoBD contratoBD = tipo.ConverteDe(modelo);

            using (var context = _fabricaDeContextos.CriaContextoDe <RemuneracaoContext>(TipoDeConexao.Remuneracao))
            {
                EntityEntry <ContratoDeRemuneracaoBD> contratoInserido = await context.AddAsync(contratoBD);

                await context.SaveChangesAsync();

                return(contratoInserido.Entity.Id);
            }
        }
        public async Task <int> UpdateAsync(IContratoDeRemuneracao modelo, int id)
        {
            var tipo = TipoDeContratoDeRemuneracaoBancoDeDados.Parse(modelo.Tipo.Name);
            ContratoDeRemuneracaoBD contratoBD = tipo.ConverteDe(modelo);

            contratoBD.Id = id;

            using (var context = _fabricaDeContextos.CriaContextoDe <RemuneracaoContext>(TipoDeConexao.Remuneracao))
            {
                context.Contratos.Update(contratoBD);
                await context.SaveChangesAsync();

                return(contratoBD.Id);
            }
        }