예제 #1
0
        public void CreaMezziDellaFamiglia(int nrBici, string marcaBici, List <string> modelliBici, string marcaAuto, string modelloAuto)
        {
            if (string.IsNullOrEmpty(marcaBici))
            {
                throw new ArgumentNullException(nameof(marcaBici));
            }
            if (string.IsNullOrEmpty(marcaAuto))
            {
                throw new ArgumentNullException(nameof(marcaAuto));
            }
            if (string.IsNullOrEmpty(modelloAuto))
            {
                throw new ArgumentNullException(nameof(modelloAuto));
            }

            foreach (string modello in modelliBici)
            {
                Bici b = new Bici();
                b.Marca   = marcaBici;
                b.Modello = modello;
                _BiciManager.Crea(b);
            }
            Auto auto = new Auto
            {
                Marca   = marcaAuto,
                Modello = modelloAuto,
                DataImmatricolazione = DateTime.Now
            };


            //Aggiungo il libro
            _AutoManager.Crea(auto);
        }
예제 #2
0
        static void Main(string[] args)
        {
            Bici bici = new Bici();

            bici.init("BiciMex", 2, 13);
            bici.sube();
            bici.print();
        }
예제 #3
0
        public string[] CreaBiciSeNonEsiste(string numeroTelaio, string marca, string modello, bool isElettrica, string colore, int velocita)
        {
            //1) Validazione degli input
            if (string.IsNullOrEmpty(numeroTelaio))
            {
                throw new ArgumentNullException(nameof(numeroTelaio));
            }
            if (string.IsNullOrEmpty(marca))
            {
                throw new ArgumentNullException(nameof(marca));
            }
            if (string.IsNullOrEmpty(modello))
            {
                throw new ArgumentNullException(nameof(modello));
            }
            if (velocita <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(velocita));
            }
            //Predisposizione messaggi di uscita
            IList <string> messaggi = new List <string>();

            //3)  Verifico che il prezzo sia > 1
            if (velocita < 1)
            {
                //Aggiungo il messaggio di errore, ed esco
                messaggi.Add($"La velocita deve essere maggiore di 1");
                return(messaggi.ToArray());
            }

            //7) Creo l'oggetto con tutti i dati
            Bici bici = new Bici
            {
                Marca        = marca,
                Modello      = modello,
                Velocita     = velocita,
                IsElettrica  = isElettrica,
                NumeroTelaio = numeroTelaio
            };

            //Aggiungo il libro
            _BiciManager.Crea(bici);

            //8) Ritorno in uscita le validazioni (vuote se non ho errori)
            return(messaggi.ToArray());
        }
예제 #4
0
        static void Main(string[] args)
        {
            lBuscarMejorOpcion buscarMejorOpcion  = new BuscarMejorOpcion();
            lAsignarDatosEnvio lasignarDatosEnvio = new AsignarDatosEnvio();
            Context            context            = new Context();
            lConvertirTipoDato convertirTipoDato  = new CovertirTipoDatoService();
            double             dTiempoTraslado    = 0;
            decimal            TiempoTraslado     = 0;
            decimal            dCostoEnvio        = 0;
            string             cExpresion1        = "";
            string             cExpresion2        = "";
            string             cExpresion3        = "";
            string             cExpresion4        = "";
            string             cExpresion5        = "";
            DateTime           dtFechaEntrega     = new DateTime();
            DateTime           dtHoy      = DateTime.Now;
            lLeerArchivoTexto  Lector     = new LeerArchivoTexto();
            lEmpresas          empresa    = null;
            lEnvios            transporte = null;
            lEnvios            aereo      = new Avion()
            {
                dVelocidadEntrega = 600, dCostoEnvio = 10, cNombre = "Avion"
            };
            lEnvios tren = new Tren()
            {
                dVelocidadEntrega = 80, dCostoEnvio = 5, cNombre = "Tren"
            };
            lEnvios barco = new Barco()
            {
                dVelocidadEntrega = 46, dCostoEnvio = 1, cNombre = "Barco"
            };
            lEnvios bici = new Bici()
            {
                dVelocidadEntrega = 1, dCostoEnvio = 3, cNombre = "Bici"
            };
            lEmpresas fedex = new Estafeta(new List <lEnvios>()
            {
                barco
            }, 50, "Fedex");
            lEmpresas dhl = new DHL(new List <lEnvios>()
            {
                aereo, barco
            }, 40, "DHL");
            lEmpresas estafeta = new Estafeta(new List <lEnvios>()
            {
                tren
            }, 20, "Estafeta");
            lEmpresas upc = new UPC(new List <lEnvios>()
            {
                bici
            }, 50, "UPC");
            List <lEmpresas> lstEmpresas = new List <lEmpresas>()
            {
                fedex, dhl, estafeta, upc
            };
            List <lEnvios> lstTransportes = new List <lEnvios>()
            {
                aereo, tren, barco, bici
            };

            List <string> lines = Lector.LeerArchivo("Pedidos.txt");

            foreach (string line in lines)
            {
                string[] cInformacion = line.Split(',');

                lasignarDatosEnvio.AsignarEmpresa(cInformacion[3], ref empresa, lstEmpresas);

                lasignarDatosEnvio.AsignarTransporte(cInformacion[4], ref transporte, lstTransportes);

                if (empresa != null)
                {
                    Pedido      initialState = new DesactivarState();
                    State.State entPedido    = new State.State(initialState, cInformacion[0], cInformacion[1], convertirTipoDato.ConvertirStringADecimal(cInformacion[2]), empresa, transporte, Convert.ToDateTime(cInformacion[5]));
                    initialState.setContext(entPedido);

                    TiempoTraslado = empresa.TiempoTraslado(entPedido);

                    if (TiempoTraslado > 0)
                    {
                        dTiempoTraslado = convertirTipoDato.ConvertirDecimalADouble(TiempoTraslado);
                        dtFechaEntrega  = empresa.FechaEntrega(dTiempoTraslado, entPedido);
                        dCostoEnvio     = empresa.CostoEnvio(entPedido);

                        Console.WriteLine(buscarMejorOpcion.ObtenerMejorOpcion(lstEmpresas, empresa, entPedido, dCostoEnvio));

                        Expresion1 expresion1 = new Expresion1();
                        context.setStrategy(expresion1);
                        cExpresion1 = context.ValidarFechaEntrega(dtFechaEntrega, dtHoy, entPedido);

                        Expresion2 expresion2 = new Expresion2();
                        context.setStrategy(expresion2);
                        cExpresion2 = context.ValidarFechaEntrega(dtFechaEntrega, dtHoy, entPedido);

                        Expresion3 expresion3 = new Expresion3();
                        context.setStrategy(expresion3);
                        cExpresion3 = context.ValidarFechaEntrega(dtFechaEntrega, dtHoy, entPedido);

                        Expresion4 expresion4 = new Expresion4();
                        context.setStrategy(expresion4);
                        cExpresion4 = context.ValidarFechaEntrega(dtFechaEntrega, dtHoy, entPedido);

                        Expresion5 expresion5 = new Expresion5();
                        context.setStrategy(expresion5);
                        cExpresion5 = context.ValidarFechaEntrega(dtFechaEntrega, dtHoy, entPedido);


                        if (entPedido.state.ToString() == "State.ActivarState")
                        {
                            System.Console.ForegroundColor = ConsoleColor.Green;
                        }
                        else
                        {
                            System.Console.ForegroundColor = ConsoleColor.Yellow;
                        }
                        Console.WriteLine($"Tu paquete {cExpresion1} de {entPedido.cOrigen} y {cExpresion2} a {entPedido.cDestino} {cExpresion3} {cExpresion5} y {cExpresion4} un costo de {dCostoEnvio} (Cualquier reclamación con {cInformacion[3]}).");
                    }
                }
                Console.WriteLine();
            }
            Console.ReadLine();
        }
예제 #5
0
        public static void EseguiCreaModificaCancella()
        {
            //Creazione dell'istanza del manager delle bici
            Console.WriteLine();
            Console.WriteLine("ESECUZIONE DEL WORKFLOW BICI...");
            Console.WriteLine();

            IManager <Bici> manager = new JsonBiciManager();

            //Visualizzazione contenuto database
            Console.WriteLine("Lettura del database...");
            var biciInArchivio = manager.Carica();

            Console.WriteLine($"Trovate n° {biciInArchivio.Count} bici in archivio");
            foreach (var currentBici in biciInArchivio)
            {
                Console.WriteLine($"Lettura: {currentBici.NumeroTelaio} (ID:{currentBici.Id})");
            }
            Console.WriteLine("");
            Console.WriteLine("Premere invio per proseguire...");
            Console.ReadLine();

            //Creazione di una nuova bici => "C" di CRUD
            Console.WriteLine("Creazione di una bici...");
            var nuovaBici = new Bici {
                NumeroTelaio = "012345", Colore = "Green", IsElettrica = true, Modello = "Piaggio"
            };

            manager.Crea(nuovaBici);
            Console.WriteLine("La bici dovrebbe essere stata creata su disco!");
            Console.WriteLine();

            //Leggiamo bici dal disco => "R" di CRUD
            Console.WriteLine("Lettura del database...");
            var tutteLeBici = manager.Carica();

            Console.WriteLine($"Numero biciclette trovati: {tutteLeBici.Count}");
            foreach (var currentBici in tutteLeBici)
            {
                Console.WriteLine($"Lettura dati bici: {currentBici.NumeroTelaio} (ID:{currentBici.Id})");
            }
            Console.WriteLine();
            Console.WriteLine("Premere invio per proseguire...");
            Console.ReadLine();

            //Modifico bici esistente e scrivo sui disco
            Console.WriteLine("Modifica di una bici esistente...");
            nuovaBici.NumeroTelaio = "012345";
            manager.Aggiorna(nuovaBici);
            Console.WriteLine("Il nome cambiato dovrebbe essere sul disco!");
            Console.WriteLine();

            //Rileggiamo per vedere se effettivamente è cambiato
            Console.WriteLine("Lettura del database...");
            var tutteLeBiciDiNuovo = manager.Carica();

            Console.WriteLine($"Numero bici trovate: {tutteLeBiciDiNuovo.Count}");
            foreach (var currentBici in tutteLeBiciDiNuovo)
            {
                Console.WriteLine($"Lettura bici: {currentBici.NumeroTelaio} (ID:{currentBici.Id})");
            }
            Console.WriteLine();
            Console.WriteLine("Premere invio per proseguire...");
            Console.ReadLine();

            //Cancellazione del Bicicletta => "D" di CRUD
//            Console.WriteLine("Cancellazione di un Bicicletta esistente...");
//            manager.Cancella(nuovaBici);
//            Console.WriteLine("Il Bicicletta dovrebbe essere stato cancellato dal disco!");
//            Console.WriteLine();

            //Rileggiamo per vedere se effettivamente è cambiato
            Console.WriteLine("Lettura del database...");
            var tuttiIbicicletteUltimaVolta = manager.Carica();

            Console.WriteLine($"Numero biciclette trovate: {tuttiIbicicletteUltimaVolta.Count}");
            foreach (var currentBicicletta in tuttiIbicicletteUltimaVolta)
            {
                Console.WriteLine($"Lettura Bicicletta: {currentBicicletta.NumeroTelaio} (ID:{currentBicicletta.Id})");
            }
            Console.WriteLine();
            Console.WriteLine("Premere invio per proseguire...");
            Console.ReadLine();
        }