Beispiel #1
0
        public void AsignarNuevoDestinatario( )
        {
            IEventAggregatorReactive domainDispacher = ContainerFactory.Resolve <IEventAggregatorReactive>();

            using (domainDispacher.GetEvent <DestinatarioAsignado>().Subscribe(c => EventoEjecutadoSpy(c)))
            {
                Envio        sut          = new Envio(Guid.NewGuid());
                EnvioPersona nuevaPersona = new EnvioPersona("Nombre", "Apellido1", "Apellido2");

                sut.AsignarDestinatario(nuevaPersona);

                sut.Destinatario.ShouldBe(nuevaPersona);
            }

            eventoEjecutado.ShouldBe(true);
        }
        public void AsignarDestinatario(EnvioPersona nuevoDestinatario)
        {
            if (!IsInProgress)
            {
                throw new InvalidOperationException();
            }

            if (Destinatario == nuevoDestinatario)
            {
                return;
            }

            Destinatario = nuevoDestinatario;

            IEventAggregatorReactive eventAggregator = ContainerFactory.Resolve <IEventAggregatorReactive>();

            eventAggregator.Raise <DestinatarioAsignado>(new DestinatarioAsignado(nuevoDestinatario.Id, nuevoDestinatario.Nombre, nuevoDestinatario.Apellido1, nuevoDestinatario.Apellido2, Id));
        }