public static IEnumerable <PremioPortabilidade> ToEventoPortabilidade(this IPortabilidadeApropriada contrato) { var evento = new EventoPortabilidadePremio(contrato.Identificador, contrato.IdentificadorCorrelacao, contrato.IdentificadorNegocio, contrato.DataExecucaoEvento); contrato.Portabilidades.SafeForEach(premio => evento.AdicionarPremio(premio.ToPremioPortabilidade())); return(evento.Premios); }
public async Task <EventoPremio> Com(IPortabilidadeApropriada message) { var evento = new EventoPortabilidadePremio(message.Identificador, message.IdentificadorCorrelacao, message.IdentificadorNegocio, message.DataExecucaoEvento); foreach (var parcela in message.Portabilidades) { var premio = (await _premios.CriarPremio(_mapear.ToPremio(parcela), evento)) .ComPagamento(_mapear.ToPagamentoPremio(parcela.Pagamento)) .ComNumero(evento.ParcelaPortabilidade) .ComCodigoSusep(parcela.CodigoSusep); evento.AdicionarPremio(premio); } return(evento); }