Beispiel #1
0
        /// <summary>
        /// Método que permite asignar nuevos datos al paquete
        /// </summary>
        /// <param name="_dtoPaqueteria">DTO con los datos del paquete.</param>
        /// <returns>DTO con los datos del paquete actualizado.</returns>
        public PaqueteriaDTO AsignarNuevosDatos(ref PaqueteriaDTO _dtoPaqueteria)
        {
            PaqueteriaDTO dtoPaqueteria = _dtoPaqueteria;

            this.IMedioTransporte          = lstMediosTransportes.Where(e => e.cNombreMedioTransporte == dtoPaqueteria.cNombreMedioTransporte).FirstOrDefault();
            dtoPaqueteria.dCostoEnvio      = ObtenerCostoEnvio(dtoPaqueteria.dDistancia);
            dtoPaqueteria.tsTiempoTraslado = ObtenerTiempoTraslado(dtoPaqueteria.dDistancia);
            dtoPaqueteria.dtEntrega        = ObtenerFechaEntrega(dtoPaqueteria.dtPedido, dtoPaqueteria.tsTiempoTraslado);
            return(dtoPaqueteria);
        }
        /// <summary>
        /// Método que permite crear el DTO con los datos de la paquetería.
        /// </summary>
        /// <param name="_cNombreEmpresa">Nombre de la empresa.</param>
        /// <param name="_cNombreLugarOrigen">Nombre del lugar de origen.</param>
        /// <param name="_cNombreLugarDestino">Nombre del lugar de destino.</param>
        /// <param name="_cRangoTiempo">Rango del tiempo.</param>
        /// <param name="_dCostoEnvio">Costo del envío.</param>
        /// <param name="_dtEntrega">Fecha de entrega.</param>
        /// <returns>DTO con los datos de la paquetería.</returns>
        private PaqueteriaDTO CrearPaqueteriaDTO(string _cNombreEmpresa, string _cNombreLugarOrigen,
                                                 string _cNombreLugarDestino, string _cRangoTiempo, decimal _dCostoEnvio, DateTime _dtEntrega)
        {
            PaqueteriaDTO dtoPaqueteria = new PaqueteriaDTO()
            {
                cNombreEmpresa      = _cNombreEmpresa,
                cNombreLugarOrigen  = _cNombreLugarOrigen,
                cNombreLugarDestino = _cNombreLugarDestino,
                cRangoTiempo        = _cRangoTiempo,
                dCostoEnvio         = _dCostoEnvio,
                dtEntrega           = _dtEntrega
            };

            return(dtoPaqueteria);
        }
Beispiel #3
0
        /// <summary>
        /// Método que permite buscar la empresa de paquetería más económica.
        /// </summary>
        /// <param name="lstEmpresaPaqueteria">Lista de empresas de paqueterías para comparar sus precios económicos.</param>
        /// <returns>DTO con los datos de la empresa de paquetería con el precio más económico.</returns>
        public PaqueteriaDTO BuscarEmpresaPaqueteriaEconomica(List <IEmpresaPaqueteria> lstEmpresaPaqueteria)
        {
            PaqueteriaDTO dtoPaqueteriaSiguiente  = new PaqueteriaDTO();
            PaqueteriaDTO dtoPaqueteriaMenorCosto = new PaqueteriaDTO();
            decimal       dDiferenciaCostoEnvio   = 0.0M;

            foreach (IEmpresaPaqueteria dtoPaqueteriaEconomica in lstEmpresaPaqueteria)
            {
                if (dtoPaqueteriaEconomica.cNombreEmpresa != this.dtoPaqueteria.cNombreEmpresa)
                {
                    List <IMedioTransporte> lstMedioTransporte = dtoPaqueteriaEconomica.lstMediosTransportes.Where(w => w.cNombreMedioTransporte == this.dtoPaqueteria.cNombreMedioTransporte).ToList();

                    if (lstMedioTransporte.Any())
                    {
                        foreach (IMedioTransporte mt in lstMedioTransporte)
                        {
                            dtoPaqueteriaSiguiente.cNombreEmpresa         = dtoPaqueteriaEconomica.cNombreEmpresa;
                            dtoPaqueteriaSiguiente.cNombreLugarOrigen     = this.dtoPaqueteria.cNombreLugarOrigen;
                            dtoPaqueteriaSiguiente.cNombreLugarDestino    = this.dtoPaqueteria.cNombreLugarDestino;
                            dtoPaqueteriaSiguiente.dDistancia             = this.dtoPaqueteria.dDistancia;
                            dtoPaqueteriaSiguiente.cNombreMedioTransporte = this.dtoPaqueteria.cNombreMedioTransporte;
                            dtoPaqueteriaSiguiente.dtPedido = this.dtoPaqueteria.dtPedido;

                            dtoPaqueteriaEconomica.AsignarNuevosDatos(ref dtoPaqueteriaSiguiente);
                            dDiferenciaCostoEnvio = Math.Abs(this.dtoPaqueteria.dCostoEnvio - dtoPaqueteriaSiguiente.dCostoEnvio);

                            if (string.IsNullOrWhiteSpace(dtoPaqueteriaMenorCosto.cNombreEmpresa))
                            {
                                if (this.dtoPaqueteria.dCostoEnvio > dtoPaqueteriaSiguiente.dCostoEnvio)
                                {
                                    dtoPaqueteriaMenorCosto = dtoPaqueteriaSiguiente;
                                }
                            }
                            else
                            {
                                if (dtoPaqueteriaMenorCosto.dCostoEnvio > dtoPaqueteriaSiguiente.dCostoEnvio)
                                {
                                    dtoPaqueteriaMenorCosto = dtoPaqueteriaSiguiente;
                                }
                            }
                        }
                    }
                }
            }

            dtoPaqueteriaMenorCosto.dCostoEnvio = dDiferenciaCostoEnvio;
            return(dtoPaqueteriaMenorCosto);
        }
Beispiel #4
0
        /// <summary>
        /// Método que permite crear el DTO con los datos de la paquetería.
        /// </summary>
        /// <param name="_cNombreEmpresa">Nombre de la empresa.</param>
        /// <param name="_cNombreMedioTransporte">Nombre del medio de transporte.</param>
        /// <param name="_cNombreLugarOrigen">Nombre del lugar de origen.</param>
        /// <param name="_cNombreLugarDestino">Nombre del lugar de destino.</param>
        /// <param name="_dDistancia">Distancia recorrida.</param>
        /// <param name="_dCostoEnvio">Costo del envío.</param>
        /// <param name="_dtPedido">Fecha del pedido.</param>
        /// <returns>DTO con los datos de la paquetería.</returns>
        private PaqueteriaDTO CrearPaqueteriaDTO(string _cNombreEmpresa, string _cNombreMedioTransporte, string _cNombreLugarOrigen,
                                                 string _cNombreLugarDestino, decimal _dDistancia, decimal _dCostoEnvio, DateTime _dtPedido)
        {
            PaqueteriaDTO dtoPaqueteria = new PaqueteriaDTO()
            {
                cNombreEmpresa         = _cNombreEmpresa,
                cNombreMedioTransporte = _cNombreMedioTransporte,
                cNombreLugarOrigen     = _cNombreLugarOrigen,
                cNombreLugarDestino    = _cNombreLugarDestino,
                dDistancia             = _dDistancia,
                dCostoEnvio            = _dCostoEnvio,
                dtPedido = _dtPedido
            };

            return(dtoPaqueteria);
        }
        public void ObtenerMensaje_EnviarFechaEntregaIgualFechaActual_DevuelveMensajeErrorEnFuturo(string _cNombreEmpresa)
        {
            //Arrange
            //Variables necesarias para realizar las pruebas.
            PaqueteriaDTO   paqueteriaDTO    = CrearPaqueteriaDTO(_cNombreEmpresa, "China", "México", "2 horas", 450, new DateTime(2020, 02, 24, 12, 00, 00));
            IObtenerMensaje SUT              = new ObtenerMensajePaquete(paqueteriaDTO, new DateTime(2020, 02, 24, 12, 00, 00));
            string          cMensajeEsperado = $"Tu paquete ha salido de {paqueteriaDTO.cNombreLugarOrigen} y llegará a {paqueteriaDTO.cNombreLugarDestino} " +
                                               $"dentro de {paqueteriaDTO.cRangoTiempo} y tendrá un costo de ${paqueteriaDTO.dCostoEnvio} " +
                                               $"(Cualquier reclamación con {paqueteriaDTO.cNombreEmpresa}).";
            string cMensajeActual = string.Empty;

            //Act
            //Método que será sometido a pruebas.
            cMensajeActual = SUT.ObtenerMensaje();

            //Assert
            //Validación de valores esperados.
            Assert.AreEqual(cMensajeEsperado, cMensajeActual);
        }
Beispiel #6
0
        public void ObtenerMensaje_EnviarEmpresaConTransporteExistente_NoDevuelveMensajeError(string _cNombreEmpresa, string _cMedioTransporte)
        {
            //Arrange
            //Variables necesarias para realizar las pruebas.
            PaqueteriaDTO paqueteriaDTO = new PaqueteriaDTO()
            {
                cNombreEmpresa = _cNombreEmpresa, cNombreMedioTransporte = _cMedioTransporte
            };
            IObtenerMensaje SUT      = new ObtenerMensajeMedioTransporte(paqueteriaDTO, true);
            string          cMensaje = string.Empty;

            //Act
            //Método que será sometido a pruebas.
            cMensaje = SUT.ObtenerMensaje();

            //Assert
            //Validación de valores esperados.
            Assert.IsTrue(string.IsNullOrWhiteSpace(cMensaje));
        }
        public void ObtenerMensaje_EnviarEmpresaDHLConCostoEnvio_DevuelveMensajeError(string _cNombreEmpresa, int _iCostoEnvio)
        {
            //Arrange
            //Variables necesarias para realizar las pruebas.
            PaqueteriaDTO paqueteriaDTO = new PaqueteriaDTO()
            {
                cNombreEmpresa = _cNombreEmpresa, dCostoEnvio = Convert.ToDecimal(_iCostoEnvio)
            };
            IObtenerMensaje SUT = new ObtenerMensajeEmpresaPaqueteriaEconomica(paqueteriaDTO);
            string          cMensajeEsperado = $"Si hubieras pedido en {paqueteriaDTO.cNombreEmpresa} te hubiera costado ${paqueteriaDTO.dCostoEnvio} más barato.";
            string          cMensajeActual   = string.Empty;

            //Act
            //Método que será sometido a pruebas.
            cMensajeActual = SUT.ObtenerMensaje();

            //Assert
            //Validación de valores esperados.
            Assert.AreEqual(cMensajeEsperado, cMensajeActual);
        }
Beispiel #8
0
        public void ObtenerMensaje_EnviarEmpresaInexistente_DevuelveMensajeError(string _cNombreEmpresa)
        {
            //Arrange
            //Variables necesarias para realizar las pruebas.
            PaqueteriaDTO paqueteriaDTO = new PaqueteriaDTO()
            {
                cNombreEmpresa = _cNombreEmpresa
            };
            IObtenerMensaje SUT = new ObtenerMensajeEmpresaPaqueteria(paqueteriaDTO, false);
            string          cMensajeEsperado = $"La paquetería: {paqueteriaDTO.cNombreEmpresa} no se encuentra registrada en nuestra red de distribución.";
            string          cMensajeActual   = string.Empty;

            //Act
            //Método que será sometido a pruebas.
            cMensajeActual = SUT.ObtenerMensaje();

            //Assert
            //Validación de valores esperados.
            Assert.AreEqual(cMensajeEsperado, cMensajeActual);
        }
Beispiel #9
0
        public void ObtenerMensaje_EnviarEmpresaConTransporteInexistente_DevuelveMensajeError(string _cNombreEmpresa, string _cMedioTransporte)
        {
            //Arrange
            //Variables necesarias para realizar las pruebas.
            PaqueteriaDTO paqueteriaDTO = new PaqueteriaDTO()
            {
                cNombreEmpresa = _cNombreEmpresa, cNombreMedioTransporte = _cMedioTransporte
            };
            IObtenerMensaje SUT = new ObtenerMensajeMedioTransporte(paqueteriaDTO, false);
            string          cMensajeEsperado = $"{paqueteriaDTO.cNombreEmpresa} no ofrece el servicio de transporte {paqueteriaDTO.cNombreMedioTransporte}, te recomendamos cotizar en otra empresa.";
            string          cMensajeActual   = string.Empty;

            //Act
            //Método que será sometido a pruebas.
            cMensajeActual = SUT.ObtenerMensaje();

            //Assert
            //Validación de valores esperados.
            Assert.AreEqual(cMensajeEsperado, cMensajeActual);
        }
Beispiel #10
0
        public void BuscarEmpresaPaqueteriaEconomica_EnviarEmpresaFedexConBarco_DevuelveEmpresaDHLMasEconomicaConBarco()
        {
            //Arrange
            //Variables necesarias para realizar las pruebas.
            decimal       dDistancia       = 50000;
            decimal       dCostoEnvio      = CalcularCostoEnvio(dDistancia, 1, 50);
            PaqueteriaDTO paqueteriaDTO    = CrearPaqueteriaDTO("Fedex", "Barco", "China", "México", dDistancia, dCostoEnvio, new DateTime(2020, 02, 24, 12, 00, 00));
            IBuscadorEmpresaPaqueteria SUT = new BuscadorEmpresaPaqueteria(paqueteriaDTO);
            List <IEmpresaPaqueteria>  lstEmpresaPaqueteria = new List <IEmpresaPaqueteria>();

            lstEmpresaPaqueteria.Add(CrearEmpresaPaqueteriaDHL());
            lstEmpresaPaqueteria.Add(CrearEmpresaPaqueteriaEstafeta());
            lstEmpresaPaqueteria.Add(CrearEmpresaPaqueteriaFedex());

            //Act
            //Método que será sometido a pruebas.
            paqueteriaDTO = SUT.BuscarEmpresaPaqueteriaEconomica(lstEmpresaPaqueteria);

            //Assert
            //Validación de valores esperados.
            Assert.AreEqual("DHL", paqueteriaDTO.cNombreEmpresa);
        }
Beispiel #11
0
        public void BuscarEmpresaPaqueteriaEconomica_EnviarEmpresaEstafetaConTren_NoDevuelveOtraEmpresaMasEconomicaConTren()
        {
            //Arrange
            //Variables necesarias para realizar las pruebas.
            decimal       dDistancia       = 50000;
            decimal       dCostoEnvio      = CalcularCostoEnvio(dDistancia, 5, 20);
            PaqueteriaDTO paqueteriaDTO    = CrearPaqueteriaDTO("Estafeta", "Tren", "China", "México", dDistancia, dCostoEnvio, new DateTime(2020, 02, 24, 12, 00, 00));
            IBuscadorEmpresaPaqueteria SUT = new BuscadorEmpresaPaqueteria(paqueteriaDTO);
            List <IEmpresaPaqueteria>  lstEmpresaPaqueteria = new List <IEmpresaPaqueteria>();

            lstEmpresaPaqueteria.Add(CrearEmpresaPaqueteriaDHL());
            lstEmpresaPaqueteria.Add(CrearEmpresaPaqueteriaEstafeta());
            lstEmpresaPaqueteria.Add(CrearEmpresaPaqueteriaFedex());

            //Act
            //Método que será sometido a pruebas.
            paqueteriaDTO = SUT.BuscarEmpresaPaqueteriaEconomica(lstEmpresaPaqueteria);

            //Assert
            //Validación de valores esperados.
            Assert.IsTrue(string.IsNullOrWhiteSpace(paqueteriaDTO.cNombreEmpresa));
        }
Beispiel #12
0
        /// <summary>
        /// Método que permite colorear el mensaje que se muestra en el sistema.
        /// </summary>
        /// <param name="_dtoPaquete">DTO con los datos del paquete.</param>
        /// <param name="_dtActual">Fecha del día de hoy.</param>
        /// <param name="_cMensaje">Texto del mensaje que se va a colorear.</param>
        public void ColorearMensajePaquete(PaqueteriaDTO _dtoPaquete, DateTime _dtActual, string _cMensaje)
        {
            if (!string.IsNullOrWhiteSpace(_cMensaje))
            {
                ColorMensaje  srvColorMensaje = new ColorMensaje();
                IColorMensaje IColorMensaje;
                string        cColorMensajePaquete = string.Empty;

                if (_dtoPaquete.dtEntrega < _dtActual)
                {
                    IColorMensaje = new ColorMensajeVerde();
                    srvColorMensaje.AgregarColorMensaje(IColorMensaje);
                }
                else
                {
                    IColorMensaje = new ColorMensajeAmarillo();
                    srvColorMensaje.AgregarColorMensaje(IColorMensaje);
                }

                srvColorMensaje.ColorearMensaje(_cMensaje);
            }
        }
 /// <summary>
 /// Constructor de la clase.
 /// </summary>
 /// <param name="_dtoPaquete">DTO con los datos del paquete.</param>
 /// <param name="_dtActual">Fecha del día de hoy.</param>
 public ObtenerMensajePaquete(PaqueteriaDTO _dtoPaquete, DateTime _dtActual)
 {
     this.dtoPaquete = _dtoPaquete;
     this.dtActual   = _dtActual;
 }
 /// <summary>
 /// Constructor de la clase.
 /// </summary>
 /// <param name="_dtoPaquete">DTO con los datos del paquete.</param>
 /// <param name="_lExisteEmpresaPaqueteria">Valor boleano que indica si existe (true) o no (false) la empresa de paquetería.</param>
 public ObtenerMensajeEmpresaPaqueteria(PaqueteriaDTO _dtoPaquete, bool _lExisteEmpresaPaqueteria)
 {
     this.dtoPaquete = _dtoPaquete;
     this.lExisteEmpresaPaqueteria = _lExisteEmpresaPaqueteria;
 }
Beispiel #15
0
 /// <summary>
 /// Constructor de la clase.
 /// </summary>
 /// <param name="_dtoPaqueteria">DTO con los datos de la paquetería.</param>
 public BuscadorEmpresaPaqueteria(PaqueteriaDTO _dtoPaqueteria)
 {
     this.dtoPaqueteria = _dtoPaqueteria;
 }
Beispiel #16
0
        /// <summary>
        /// Método que permite aplicar el rastreo de paquetes.
        /// </summary>
        /// <param name="_lstContenidoArchivo">Lista con el contenido del archivo a leer.</param>
        public void AplicarRastreoPaquete(List <string> _lstContenidoArchivo)
        {
            //DTOs.
            PaqueteriaDTO dtoPaqueteria            = new PaqueteriaDTO();
            PaqueteriaDTO dtoPaqueteriaActualizado = new PaqueteriaDTO();
            PaqueteriaDTO dtoPaqueteriaEconomica   = new PaqueteriaDTO();

            //Interfaces.
            IManejadorRangoTiempo IManejadorRangoTiempoAnios    = new ManejadorRangoTiempoAnios();
            IManejadorRangoTiempo IManejadorRangoTiempoBimestre = new ManejadorRangoTiempoBimestres();
            IManejadorRangoTiempo IManejadorRangoTiempoMeses    = new ManejadorRangoTiempoMeses();
            IManejadorRangoTiempo IManejadorRangoTiempoSemanas  = new ManejadorRangoTiempoSemanas();
            IManejadorRangoTiempo IManejadorRangoTiempoDias     = new ManejadorRangoTiempoDias();
            IManejadorRangoTiempo IManejadorRangoTiempoHoras    = new ManejadorRangoTiempoHoras();
            IManejadorRangoTiempo IManejadorRangoTiempoMinutos  = new ManejadorRangoTiempoMinutos();

            IMedioTransporte ITransporteTren = new TransporteTren()
            {
                cNombreMedioTransporte = "Tren", dCostoKmPeso = 5, dVelocidadEntrega = 80
            };
            IMedioTransporte ITransporteAvion = new TransporteAvion()
            {
                dCostoKmPeso = 10, cNombreMedioTransporte = "Avion", dVelocidadEntrega = 600
            };
            IMedioTransporte ITransporteBarco = new TransporteBarco()
            {
                dCostoKmPeso = 1, cNombreMedioTransporte = "Barco", dVelocidadEntrega = 46
            };
            IEmpresaPaqueteria IEmpresaDHL = new EmpresaDHL()
            {
                cNombreEmpresa = "DHL", dMargenUtilidad = 40, lstMediosTransportes = new List <IMedioTransporte>()
                {
                    ITransporteAvion, ITransporteBarco
                }
            };
            IEmpresaPaqueteria IEmpresaEstafeta = new EmpresaEstafeta()
            {
                cNombreEmpresa = "Estafeta", dMargenUtilidad = 20, lstMediosTransportes = new List <IMedioTransporte>()
                {
                    ITransporteTren
                }
            };
            IEmpresaPaqueteria IEmpresaFedex = new EmpresaFedex()
            {
                cNombreEmpresa = "Fedex", dMargenUtilidad = 50, lstMediosTransportes = new List <IMedioTransporte>()
                {
                    ITransporteBarco
                }
            };

            IBuscadorEmpresaPaqueteria  IBuscadorEmpresaPaqueteria;
            IObtenerMensaje             IObtenerMensaje;
            IValidadorEmpresaPaqueteria IValidadorEmpresaPaqueteria;
            IValidadorMedioTransporte   IValidadorMedioTransporte;
            IFormatoTexto         IFormatoTexto              = new FormatoTexto();
            IConvertidorFecha     IConvertidorFecha          = new ConvertidorFecha();
            ICreadorDirectorio    ICreadorDirectorio         = new CreadorDirectorio();
            ICreadorSubdirectorio ICreadorSubdirectorio      = new CreadorSubdirectorio();
            ICreadorArchivo       ICreadorArchivo            = new CreadorArchivo();
            IEscrituraArchivo     IEscrituraArchivoPendiente = new EscrituraArchivo();
            IEscrituraArchivo     IEscrituraArchivoEntregado = new EscrituraArchivo();

            //Atributos.
            DirectoryInfo             directorioEmpresa   = null;
            DirectoryInfo             directorioPendiente = null;
            DirectoryInfo             directorioEntregado = null;
            List <PaqueteriaDTO>      lstPaqueteriaDTO    = new List <PaqueteriaDTO>();
            DateTime                  dtActual;
            TimeSpan                  tsDiferencia         = new TimeSpan();
            List <IEmpresaPaqueteria> lstEmpresaPaqueteria = new List <IEmpresaPaqueteria>();
            string cMensaje = string.Empty;
            bool   lExisteEmpresaPaqueteria = false;
            bool   lExisteMedioTransporte   = false;

            lstEmpresaPaqueteria.Add(IEmpresaDHL);
            lstEmpresaPaqueteria.Add(IEmpresaEstafeta);
            lstEmpresaPaqueteria.Add(IEmpresaFedex);
            ICreadorArchivo.lstArchivo = new List <string>()
            {
                "Años.txt", "Bimestre.txt", "Dias.txt", "Horas.txt", "Meses.txt", "Minutos.txt", "Semanas.txt"
            };

            foreach (string cLineaArchivo in _lstContenidoArchivo)
            {
                if (!string.IsNullOrWhiteSpace(cLineaArchivo))
                {
                    string[] arrLineaArchivoSplit = cLineaArchivo.Split(',');
                    dtActual = IConvertidorFecha.ConvertirFecha("2020/01/23 14:00:00");
                    dtoPaqueteria.cNombreLugarOrigen     = arrLineaArchivoSplit[0];
                    dtoPaqueteria.cNombreLugarDestino    = arrLineaArchivoSplit[1];
                    dtoPaqueteria.dDistancia             = decimal.Parse(arrLineaArchivoSplit[2]);
                    dtoPaqueteria.cNombreEmpresa         = IFormatoTexto.AplicarFormato(arrLineaArchivoSplit[3]);
                    dtoPaqueteria.cNombreMedioTransporte = IFormatoTexto.AplicarFormato(arrLineaArchivoSplit[4]);
                    dtoPaqueteria.dtPedido = Convert.ToDateTime(arrLineaArchivoSplit[5]);

                    IValidadorEmpresaPaqueteria = new ValidarEmpresaPaqueteria();
                    lExisteEmpresaPaqueteria    = IValidadorEmpresaPaqueteria.ValidarExistenciaEmpresaPaqueteria(lstEmpresaPaqueteria.Select(s => s.cNombreEmpresa).ToList(), dtoPaqueteria.cNombreEmpresa);
                    IObtenerMensaje             = new ObtenerMensajeEmpresaPaqueteria(dtoPaqueteria, lExisteEmpresaPaqueteria);
                    cMensaje = IObtenerMensaje.ObtenerMensaje();
                    ColorearMensajeError(cMensaje);
                    IEmpresaPaqueteria IEmpresaPaqueteria = lstEmpresaPaqueteria.Where(w => w.cNombreEmpresa == dtoPaqueteria.cNombreEmpresa).FirstOrDefault();

                    if (string.IsNullOrWhiteSpace(cMensaje))
                    {
                        IValidadorMedioTransporte = new ValidarMedioTransporte();
                        lExisteMedioTransporte    = IValidadorMedioTransporte.ValidarExistenciaMedioTranporte(IEmpresaPaqueteria.lstMediosTransportes.Select(s => s.cNombreMedioTransporte).ToList(), dtoPaqueteria.cNombreMedioTransporte);
                        IObtenerMensaje           = new ObtenerMensajeMedioTransporte(dtoPaqueteria, lExisteMedioTransporte);
                        cMensaje = IObtenerMensaje.ObtenerMensaje();
                        ColorearMensajeError(cMensaje);
                    }

                    if (string.IsNullOrWhiteSpace(cMensaje))
                    {
                        directorioEmpresa   = ICreadorDirectorio.CrearDirectorio(dtoPaqueteria.cNombreEmpresa);
                        directorioPendiente = ICreadorSubdirectorio.CrearSubdDirectorio(directorioEmpresa, "Pendientes");
                        directorioEntregado = ICreadorSubdirectorio.CrearSubdDirectorio(directorioEmpresa, "Entregados");
                        ICreadorArchivo.CrearArchivo(directorioPendiente);
                        ICreadorArchivo.CrearArchivo(directorioEntregado);

                        IEmpresaPaqueteria.AsignarNuevosDatos(ref dtoPaqueteria);
                        dtoPaqueteriaActualizado = dtoPaqueteria;
                        tsDiferencia             = (dtActual - dtoPaqueteriaActualizado.dtEntrega);

                        IManejadorRangoTiempoAnios.AsignarSiguienteRangoTiempo(IManejadorRangoTiempoBimestre);
                        IManejadorRangoTiempoBimestre.AsignarSiguienteRangoTiempo(IManejadorRangoTiempoMeses);
                        IManejadorRangoTiempoMeses.AsignarSiguienteRangoTiempo(IManejadorRangoTiempoSemanas);
                        IManejadorRangoTiempoSemanas.AsignarSiguienteRangoTiempo(IManejadorRangoTiempoDias);
                        IManejadorRangoTiempoDias.AsignarSiguienteRangoTiempo(IManejadorRangoTiempoHoras);
                        IManejadorRangoTiempoHoras.AsignarSiguienteRangoTiempo(IManejadorRangoTiempoMinutos);
                        dtoPaqueteria.cRangoTiempo = IManejadorRangoTiempoAnios.ObtenerRangoTiempo(tsDiferencia);//Patrón de diseño: Cadena de Responsabilidad.

                        IObtenerMensaje = new ObtenerMensajePaquete(dtoPaqueteriaActualizado, dtActual);
                        cMensaje        = IObtenerMensaje.ObtenerMensaje();
                        ColorearMensajePaquete(dtoPaqueteriaActualizado, dtActual, cMensaje);//Patrón de diseño: Estrategia.

                        IBuscadorEmpresaPaqueteria = new BuscadorEmpresaPaqueteria(dtoPaqueteria);
                        dtoPaqueteriaEconomica     = IBuscadorEmpresaPaqueteria.BuscarEmpresaPaqueteriaEconomica(lstEmpresaPaqueteria);

                        if (!string.IsNullOrWhiteSpace(dtoPaqueteriaEconomica.cNombreEmpresa))
                        {
                            IObtenerMensaje = new ObtenerMensajeEmpresaPaqueteriaEconomica(dtoPaqueteriaEconomica);
                            cMensaje        = IObtenerMensaje.ObtenerMensaje();
                            Console.WriteLine(cMensaje);
                        }

                        if (dtoPaqueteriaActualizado.dtEntrega < dtActual)
                        {
                            IEscrituraArchivoEntregado.EscribirAchivo(directorioEntregado, cMensaje);
                        }
                        else
                        {
                            IEscrituraArchivoPendiente.EscribirAchivo(directorioEntregado, cMensaje);
                        }
                    }
                }
            }
        }
Beispiel #17
0
 /// <summary>
 /// Constructor de la clase.
 /// </summary>
 /// <param name="_dtoPaquete">DTO con los datos del paquete.</param>
 public ObtenerMensajeEmpresaPaqueteriaEconomica(PaqueteriaDTO _dtoPaquete)
 {
     this.dtoPaquete = _dtoPaquete;
 }
 /// <summary>
 /// Constructor de la clase.
 /// </summary>
 /// <param name="_dtoPaquete">DTO con los datos del paquete.</param>
 /// <param name="_lExisteMedioTransporte">Valor boleano que indica si existe (true) o no (false) el medio de transporte.</param>
 public ObtenerMensajeMedioTransporte(PaqueteriaDTO _dtoPaquete, bool _lExisteMedioTransporte)
 {
     this.dtoPaquete             = _dtoPaquete;
     this.lExisteMedioTransporte = _lExisteMedioTransporte;
 }