public async Task Send(PortabilidadePremioContext context, IPipe <PortabilidadePremioContext> next) { foreach (var premio in context.Premios) { var instance = await _coberturas.ObterPorItemCertificado(premio.ItemCertificadoApoliceId); await _stateMachine.RaiseEvent(instance, _stateMachine.PortabilidadePremio, new NotificacaoEvento <EventoPortabilidadePremio, PremioPortabilidade>(context.Evento, premio)); } await next.Send(context); }
public async Task Send(ImplantacaoContext context, IPipe <ImplantacaoContext> next) { foreach (var coberturaContratada in context.Coberturas) { var instance = await _coberturas.ObterPorItemCertificado(coberturaContratada.ItemCertificadoApoliceId) ?? coberturaContratada; await _stateMachine.RaiseEvent(instance, _stateMachine.Implantar, new NotificacaoEvento <EventoImplantacao, CoberturaContratada>(context.Evento, coberturaContratada)); } await next.Send(context); }
public async Task Send(AlteracaoContext context, IPipe <AlteracaoContext> next) { foreach (var historico in context.Historicos) { historico.InformaStatus(StatusCobertura.StatusCoberturaEnum.Activa, DateTime.Now); var instance = (await _coberturas.ObterPorItemCertificado(historico.Cobertura.ItemCertificadoApoliceId)) ?? historico.Cobertura; await _stateMachine.RaiseEvent(instance, _stateMachine.Alterar, new NotificacaoEvento <EventoAlteracao, HistoricoCoberturaContratada>(context.Evento, historico)); } await next.Send(context); }
public async Task Send(AjustePremioContext context, IPipe <AjustePremioContext> next) { foreach (var premio in context.Premios) { if (!await _premios.VerificarUltimoPremio(premio.ItemCertificadoApoliceId, context.Evento.MovimentosPermitidos, premio.Numero)) { Assertion.Fail($"O Ajuste não pode ser realizado. Não foi encontrada nenhum prêmio com o ItemCertificadoApoliceId: {premio.ItemCertificadoApoliceId} e com o Número da Parcela: { premio.Numero }.").Validate(); } var instance = await _coberturas.ObterPorItemCertificado(premio.ItemCertificadoApoliceId); await _stateMachine.RaiseEvent(instance, _stateMachine.AjustePremio, new NotificacaoEvento <EventoAjustePremio, Premio>(context.Evento as EventoAjustePremio, premio)); } await next.Send(context); }
public async Task Send(DesapropriacaoPremioContext context, IPipe <DesapropriacaoPremioContext> next) { foreach (var premio in context.Premios) { if (!await _premios.VerificarUltimoPremio(premio.ItemCertificadoApoliceId, context.Evento.MovimentosPermitidos, premio.Numero)) { Assertion.Fail($"A Desapropriação não pode ser realizado. Não foi encontrada nenhuma apropropriação com o ItemCertificadoApoliceId {premio.ItemCertificadoApoliceId}, com o Número da Parcela { premio.Numero }."); } var instance = (await _coberturas.ObterPorItemCertificado(premio.ItemCertificadoApoliceId)); await _stateMachine.RaiseEvent(instance, _stateMachine.DesapropriarPremio, new NotificacaoEvento <EventoDesapropriacaoPremio, PremioDesapropriado>(context.Evento, premio)); } await next.Send(context); }
public async Task Send(ApropriacaoPremioContext context, IPipe <ApropriacaoPremioContext> next) { foreach (var premio in context.Premios) { if (!await _premios.VerificarUltimoPremio(premio.ItemCertificadoApoliceId, context.Evento.MovimentosPermitidos, premio.Numero)) { Assertion.Fail($"A apropriação não pode ser realizado, para o ItemCertificadoApoliceId {premio.ItemCertificadoApoliceId}, com o Número da Parcela { premio.Numero }." + $"O movimento anterior deve estar entre uma das opções permitidas: Emissão, Reemissão ou Desapropriação."); } var instance = (await _coberturas.ObterPorItemCertificado(premio.ItemCertificadoApoliceId)); await _stateMachine.RaiseEvent(instance, _stateMachine.ApropriarPremio, new NotificacaoEvento <EventoApropriacaoPremio, PremioApropriado>(context.Evento, premio)); } await next.Send(context); }
public async Task Send(EmissaoPremioContext context, IPipe <EmissaoPremioContext> next) { foreach (var premio in context.Premios) { var existeEmissao = await _premios.Contem(premio.ItemCertificadoApoliceId); if (existeEmissao) { if (!await _premios.VerificarUltimoPremio(premio.ItemCertificadoApoliceId, context.Evento.MovimentosPermitidos, premio.Numero)) { Assertion.Fail($"Já existe Emissão do Prêmio com o ItemCertificadoApoliceId: {premio.ItemCertificadoApoliceId} e com o Número da Parcela: {premio.Numero}. " + $"O movimento anterior deve estar entre uma das opções permitidas: Cancelamento Emissão, Ajuste de Premio ou Cancelamento Ajuste.") .Validate(); } } var instance = await _coberturas.ObterPorItemCertificado(premio.ItemCertificadoApoliceId); await _stateMachine.RaiseEvent(instance, _stateMachine.EmitirPremio, new NotificacaoEvento <EventoEmissaoPremio, Premio>(context.Evento as EventoEmissaoPremio, premio)); } await next.Send(context); }