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 async Task InserirFavorecimentoEm(IFavorecimento favorecimento, int idVinculo, string tipoDeVinculo) { TipoDeFavorecimentoBD tipoBD = TipoDeFavorecimentoBD.Get(favorecimento.Tipo.Id); FavorecimentoBD favorecimentoBD = tipoBD.ConverteDe(favorecimento, idVinculo, tipoDeVinculo); //DbContextOptions<RemuneracaoContext> option = Helper.ObtemOpcoesDeConexao<RemuneracaoContext>(_stringDeConexao); //using (var context = new RemuneracaoContext(option)) //{ using (var context = _fabricaDeContextos.CriaContextoDe <RemuneracaoContext>(TipoDeConexao.Remuneracao)) { var contemFavorecidoNaBase = await(from fav in context.Favorecimentos where fav.IdVinculo == idVinculo && fav.tipo == tipoBD.Id && fav.tipoVinculo == tipoDeVinculo select fav).FirstOrDefaultAsync(); if (contemFavorecidoNaBase == null) { await context.Favorecimentos.AddAsync(favorecimentoBD); await context.SaveChangesAsync(); } else { var parametros = favorecimentoBD.ParametrosEspecificos; favorecimentoBD = context.Favorecimentos.First(p => p.Id == contemFavorecidoNaBase.Id); //favorecimentoBD.Id = favorecimentosBD.Id; //FavorecimentoBD fav = context.Favorecimentos.First(p => p.Id == favorecimentoBD.Id); favorecimentoBD.ParametrosEspecificos = parametros; context.Favorecimentos.Update(favorecimentoBD); await context.SaveChangesAsync(); } } }