//public static Envio GetEnvio(Guid id, string stateKey = null, ServicioId servicioId = null,
        //    EnvioPersona remitente = null, EnvioPersona destinatario = null, Direccion direccionEntrega = null,
        //    Direccion direccionRecogida = null, IEnumerable<Bulto> bultos = null)
        //{
        //    return new Envio(id, stateKey, servicioId ?? new ServicioId(Guid.NewGuid()),
        //        remitente ?? new EnvioPersona("nombreRemitente", "apellido1Remitente", "apellido2Remitente"),
        //        destinatario ?? new EnvioPersona("nombreDestinario", "apellido1Destinario", "apellido2Destinario"),
        //        direccionEntrega ?? new Direccion("tipoViaE", "nombreCalleE", "numeroPortalE", "pisoE", "puertaE",
        //            "escaleraE", "codigoPostalE", "localidadE", "provinciaE"),
        //        direccionRecogida ?? new Direccion("tipoViaR", "nombreCalleR", "numeroPortalR", "pisoR", "puertaR",
        //            "escaleraR", "codigoPostalR", "localidadR", "provinciaR"),
        //        bultos ?? new List<Bulto>
        //        {
        //            new Bulto(new Peso(UnidadPeso.Kilo, 5d), new Dimensiones(1d, 2d, 3d)),
        //            new Bulto(new Peso(UnidadPeso.Kilo, 6d), new Dimensiones(4d, 5d, 6d))
        //        }
        //    );
        //}

        public static Envio BuildEnvio(Guid id, string stateKey    = null, Guid?servicioId            = null,
                                       EnvioPersona remitente      = null, EnvioPersona destinatario  = null, Direccion direccionEntrega = null,
                                       Direccion direccionRecogida = null, IEnumerable <Bulto> bultos = null)
        {
            return(new Envio(id, stateKey, servicioId, remitente, destinatario, direccionEntrega, direccionRecogida,
                             bultos));
        }
Beispiel #2
0
        public void AsignarNuevoRemitente()
        {
            Envio        sut          = new Envio(Guid.NewGuid());
            EnvioPersona nuevaPersona = new EnvioPersona("Nombre", "Apellido1", "Apellido2");

            sut.AsignarRemitente(nuevaPersona);

            sut.Remitente.ShouldBe(nuevaPersona);
        }
Beispiel #3
0
        public void AsignarRemitentePorSegundaVez()
        {
            Envio        sut           = new Envio(Guid.NewGuid());
            EnvioPersona nuevaPersona  = new EnvioPersona("Nombre", "Apellido1", "Apellido2");
            EnvioPersona nuevaPersona2 = new EnvioPersona("Nombre", "Apellido1", "Apellido2");

            sut.AsignarRemitente(nuevaPersona);
            sut.AsignarRemitente(nuevaPersona2);

            ReferenceEquals(sut.Remitente, nuevaPersona2).ShouldBe(true);
        }
        public Envio(Guid id, string stateKey, Guid?servicioId, EnvioPersona remitente, EnvioPersona destinatario, Direccion direccionEntrega, Direccion direccionRecogida, IEnumerable <Bulto> bultos) : this(id)
        {
            myState = stateKey == null ? EnvioState.Creado : Enumeration.FromValue <EnvioState>(stateKey);

            if (servicioId.HasValue)
            {
                this.ServicioId = new ServicioId(servicioId.Value);
            }

            Remitente         = remitente;
            Destinatario      = destinatario;
            DireccionEntrega  = direccionEntrega;
            DireccionRecogida = direccionRecogida;
            _bultos           = new List <Bulto>(bultos ?? Enumerable.Empty <Bulto>());
        }
Beispiel #5
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 AsignarRemitente(EnvioPersona nuevoRemitente)
        {
            if (!IsInProgress)
            {
                throw new InvalidOperationException();
            }

            if (Remitente == nuevoRemitente)
            {
                return;
            }

            Remitente = nuevoRemitente;

            //Notificamos
        }
        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));
        }