コード例 #1
0
ファイル: Program.cs プロジェクト: FranLsz/CochesLINQ
        public static bool AddCoche(Coche c)
        {
            var q = coches.FirstOrDefault(o => o.Matricula == c.Matricula);

            if (q != null)
                throw new CocheMatriculaExistenteError(
                    $"La matricula {c.Matricula} ya existe en la lista, y pertenece al modelo {q.Modelo} fabricado en {q.AFabricacion}");

            coches.Add(c);
            return true;
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: FranLsz/CochesLINQ
        static void Main(string[] args)
        {
            var c1 = new Coche("2204FGD", "Honda Civic", 2015);
            var c2 = new Coche("3455PHY", "Chevrolet Camaro", 1999);
            var c3 = new Coche("B343NSD", "Mini ONE", 2009);
            var c4 = new Coche("9485QWJ", "Renault Megane", 2011);
            var c5 = new Coche("2384PKN", "Hyundai Veloster", 2015);

            try
            {
                AddCoche(c1);
                AddCoche(c2);
                // AddCoche(c2);//fail
                AddCoche(c3);
                AddCoche(c4);
                AddCoche(c5);
            }
            catch (CocheMatriculaExistenteError e)
            {
                Console.WriteLine(e.Message);
            }

            var input = 6;

            do
            {
                Console.WriteLine("------------Menu------------");
                Console.WriteLine("1- Nuevo coche");
                Console.WriteLine("2- Listado de todos los coches");
                Console.WriteLine("3- Buscar por matrícula");
                Console.WriteLine("4- Buscar por modelo");
                Console.WriteLine("5- Buscar por modelo y año de fabricación");
                Console.WriteLine("6- Salir");
                Int32.TryParse(Console.ReadLine(), out input);
                switch (input)
                {
                    case 2:
                        Console.WriteLine("/////////");
                        Console.WriteLine("Listado de coches: ");
                        if (coches.Count > 0)
                        {
                            foreach (var e in coches)
                            {
                                Console.WriteLine(e);
                            }
                        }
                        else
                        {
                            Console.WriteLine("No hay vehiculos para mostrar");
                        }

                        Console.WriteLine("---------");
                        break;
                    case 3:
                        Console.WriteLine("/////////");
                        Console.WriteLine("Introduce la matrícula a buscar: ");
                        var ma = Console.ReadLine();
                        var resMa = coches.FirstOrDefault(o => o.Matricula == ma);

                        if (resMa == null)
                            Console.WriteLine($"No se ha encontrado ningun registro para la matricula {ma}");
                        else
                        {
                            Console.WriteLine($"Modelo: {resMa.Modelo} \nAño de fabricación: {resMa.AFabricacion}");
                        }

                        break;
                    case 4:
                        Console.WriteLine("/////////");
                        Console.WriteLine("Introduce el modelo a buscar: ");
                        var mo = Console.ReadLine();
                        var resMo = coches.Where(o => o.Modelo == mo).OrderBy(o => o.AFabricacion);

                        if (resMo.Any())
                        {
                            foreach (var c in resMo)
                            {
                                Console.WriteLine("---");
                                Console.WriteLine($"Matricula: {c.Matricula} \nAño de fabricación: {c.AFabricacion}");
                                Console.WriteLine("---");
                            }
                        }
                        else
                        {
                            Console.WriteLine($"No se ha encontrado ningun registro para el modelo {mo}");
                        }

                        break;

                    case 5:
                        Console.WriteLine("/////////");
                        Console.WriteLine("Introduce el modelo a buscar: ");
                        var mod = Console.ReadLine();
                        Console.WriteLine("Introduce la fecha de fabricación a buscar: ");
                        int fech;
                        Int32.TryParse(Console.ReadLine(), out fech);
                        var resmf = coches.Where(o => o.Modelo == mod && o.AFabricacion == fech).OrderByDescending(o=> o.Matricula);

                        if (resmf.Any())
                        {
                            foreach (var c in resmf)
                            {
                                Console.WriteLine("---");
                                Console.WriteLine($"Matricula: {c.Matricula}  \nModelo: {c.Modelo} \nAño de fabricación: {c.AFabricacion}");
                                Console.WriteLine("---");
                            }
                        }
                        else
                        {
                            Console.WriteLine($"No se ha encontrado ningun registro para el modelo {mod} y año {fech}");
                        }
                        break;
                }

            } while (input != 6);
        }