Пример #1
0
 public MobilePhone(string description, DateTime purchaseDate, int warrantyLength, double price, PhoneManufacturer phoneManufacturer, bool batteries, string phoneNumber, string ownerName, string ownerSurname)
     : base(description, purchaseDate, warrantyLength, price, batteries)
 {
     PhoneNumber       = phoneNumber;
     OwnerName         = ownerName;
     OwnerSurname      = ownerSurname;
     PhoneManufacturer = phoneManufacturer;
 }
Пример #2
0
        public void TestMethod1()
        {
            PhoneManufacturer[] manufacturer = new PhoneManufacturer[2];

            manufacturer[0] = new RealMeManufacturer();
            manufacturer[1] = new SamsungManufacturer();

            var realemePhoneFactory = manufacturer[0].ProductFactory();
            var realmePhone         = realemePhoneFactory.GetPhone();

            var samsungPhoneFactory = manufacturer[1].ProductFactory();
            var samsungPhone        = samsungPhoneFactory.GetPhone();

            //
            var nonChinesPhoneFactory = new SamsungManufacturer().ProductFactory();
            var myNonChinesPhone      = nonChinesPhoneFactory.GetPhone();
        }
 public GSMHistory(string model, PhoneManufacturer manufacturer, string owner, float price,
     BatteryEnumeration battery, DisplayEnumeration display)
     : base(model, manufacturer, owner, price, battery, display)
 {
     this.callHistory = new List<Call>();
 }
Пример #4
0
        static void Main(string[] args)
        {
            Console.WriteLine("Moguće opcije: \n1.Dodavanje \n2.Brisanje \n3.Ispis preko unesenog serijskog broja" +
                              "\n4.Ispis računala kojima garancija ističe nekoj godini" +
                              "\n5.Ispis koliko komada tehnološke opreme ima baterije \n6.Ispis svih mobitela određene marke" +
                              "\n7.Ispis računala s određenim operacijskim sustavom" +
                              "\n8.Ispis imena i brojeva vlasnika mobitela kojima garancija ističe u određenoj godini" +
                              "\n9.Ispis vozila koijma registracija ističe u sljedećih mjesec dana" +
                              "\n10.Ispis cijene sve opreme, pri kupnji, trenutno te razliku" +
                              "\n11.Završetak rada");

            List <Computer>    computers    = new List <Computer>();
            List <MobilePhone> mobilePhones = new List <MobilePhone>();
            List <Vehicle>     vehicles     = new List <Vehicle>();

            Initialize(computers, mobilePhones, vehicles);

            string choice;

            do
            {
                Console.WriteLine("Odaberite opciju: ");
                choice = Console.ReadLine();
                switch (choice)
                {
                case "1":
                    Console.WriteLine("Za unos kompjutera unesite 1, za unos mobitela 2, a za unos vozila 3");
                    var choice2  = Console.ReadLine();
                    var year     = 0;
                    var month    = 0;
                    var day      = 0;
                    var warranty = 0;
                    var price    = 0.0;
                    var flag     = false;
                    if (choice2 == "1")
                    {
                        Console.WriteLine("Unos kompjutera\nUnesite opis:");
                        var description = Console.ReadLine();
                        while (!flag)
                        {
                            Console.WriteLine("Unesite godinu kada je kupljen:");
                            flag = int.TryParse(Console.ReadLine(), out year);
                        }
                        flag = false;
                        while (!flag)
                        {
                            Console.WriteLine("Unesite mjesec kada je kupljen:");
                            flag = int.TryParse(Console.ReadLine(), out month);
                            if (month < 1 || month > 12)
                            {
                                flag = false;
                            }
                        }
                        flag = false;
                        while (!flag)
                        {
                            Console.WriteLine("Unesite dan kada je kupljen");
                            flag = int.TryParse(Console.ReadLine(), out day);
                            if (day < 1 || day > 31)
                            {
                                flag = false;
                            }
                        }
                        flag = false;
                        while (!flag)
                        {
                            Console.WriteLine("Broj mjeseci garancije:");
                            flag = int.TryParse(Console.ReadLine(), out warranty);
                        }
                        flag = false;
                        while (!flag)
                        {
                            Console.WriteLine("Cijena:");
                            flag = double.TryParse(Console.ReadLine(), out price);
                        }
                        Console.WriteLine("Koji je proizvođač, od ponuđenih");
                        foreach (var name in Enum.GetNames(typeof(ComputerManufacturer)))
                        {
                            Console.Write(name + " ");
                        }
                        Console.Write("\n");


                        ComputerManufacturer computerManufacturer = ComputerManufacturer.Acer;
                        while (!flag)
                        {
                            var input = Console.ReadLine();
                            foreach (var name in Enum.GetValues(typeof(ComputerManufacturer)))
                            {
                                if (name.ToString().ToUpper() == input.ToUpper())
                                {
                                    flag = true;
                                    computerManufacturer = (ComputerManufacturer)name;
                                }
                            }
                            if (!flag)
                            {
                                Console.WriteLine("Niste upisali jedan od ponuđenih, ponovite: ");
                            }
                        }
                        flag = false;
                        var batteries = false;
                        while (!flag)
                        {
                            Console.WriteLine("Ima li baterije(true/false):");
                            var input = Console.ReadLine();
                            if (input.ToLower() == "true")
                            {
                                batteries = true;
                                flag      = true;
                            }
                            else if (input.ToLower() == "false")
                            {
                                flag = true;
                            }
                        }
                        Console.WriteLine("Koji je os, od ponuđenih");
                        foreach (var name in Enum.GetNames(typeof(OperatingSystem)))
                        {
                            Console.Write(name + " ");
                        }
                        Console.Write("\n");
                        flag = false;
                        OperatingSystem operatingSystem = OperatingSystem.Linux;
                        while (!flag)
                        {
                            var input = Console.ReadLine();
                            foreach (var name in Enum.GetValues(typeof(OperatingSystem)))
                            {
                                if (name.ToString().ToUpper() == input.ToUpper())
                                {
                                    flag            = true;
                                    operatingSystem = (OperatingSystem)name;
                                }
                            }
                            if (!flag)
                            {
                                Console.WriteLine("Niste upisali jedan od ponuđenih, ponovite: ");
                            }
                        }
                        flag = false;
                        var laptop = false;
                        while (!flag)
                        {
                            Console.WriteLine("Je li laptop(true/false):");
                            var input = Console.ReadLine();
                            if (input.ToLower() == "true")
                            {
                                laptop = true;
                                flag   = true;
                            }
                            else if (input.ToLower() == "false")
                            {
                                flag = true;
                            }
                        }

                        computers.Add(new Computer(description, new DateTime(year, month, day), warranty, price, computerManufacturer, batteries, operatingSystem, laptop));
                    }
                    else if (choice2 == "2")
                    {
                        Console.WriteLine("Unos mobitela\nUnesite opis:");
                        var description = Console.ReadLine();
                        while (!flag)
                        {
                            Console.WriteLine("Unesite godinu kada je kupljen:");
                            flag = int.TryParse(Console.ReadLine(), out year);
                        }
                        flag = false;
                        while (!flag)
                        {
                            Console.WriteLine("Unesite mjesec kada je kupljen:");
                            flag = int.TryParse(Console.ReadLine(), out month);
                            if (month < 1 || month > 12)
                            {
                                flag = false;
                            }
                        }
                        flag = false;
                        while (!flag)
                        {
                            Console.WriteLine("Unesite dan kada je kupljen");
                            flag = int.TryParse(Console.ReadLine(), out day);
                            if (day < 1 || day > 31)
                            {
                                flag = false;
                            }
                        }
                        flag = false;
                        while (!flag)
                        {
                            Console.WriteLine("Broj mjeseci garancije:");
                            flag = int.TryParse(Console.ReadLine(), out warranty);
                        }
                        flag = false;
                        while (!flag)
                        {
                            Console.WriteLine("Cijena:");
                            flag = double.TryParse(Console.ReadLine(), out price);
                        }
                        Console.WriteLine("Koji je proizvođač, od ponuđenih");
                        foreach (var pm in Enum.GetNames(typeof(PhoneManufacturer)))
                        {
                            Console.Write(pm + " ");
                        }
                        Console.Write("\n");

                        flag = false;
                        PhoneManufacturer phoneManufacturer = PhoneManufacturer.Apple;
                        while (!flag)
                        {
                            var input = Console.ReadLine();
                            foreach (var pm in Enum.GetValues(typeof(PhoneManufacturer)))
                            {
                                if (pm.ToString().ToUpper() == input.ToUpper())
                                {
                                    flag = true;
                                    phoneManufacturer = (PhoneManufacturer)pm;
                                }
                            }
                            if (!flag)
                            {
                                Console.WriteLine("Niste upisali jedan od ponuđenih, ponovite: ");
                            }
                        }
                        flag = false;
                        var batteries = false;
                        while (!flag)
                        {
                            Console.WriteLine("Ima li baterije(true/false):");
                            var input = Console.ReadLine();
                            if (input.ToLower() == "true")
                            {
                                batteries = true;
                                flag      = true;
                            }
                            else if (input.ToLower() == "false")
                            {
                                flag = true;
                            }
                        }
                        Console.WriteLine("Broj mobitela:");
                        var phoneNumber = Console.ReadLine();
                        Console.WriteLine("Ime vlasnika:");
                        var name = Console.ReadLine();
                        Console.WriteLine("Prezime vlasnika:");
                        var surname = Console.ReadLine();


                        mobilePhones.Add(new MobilePhone(description, new DateTime(year, month, day), warranty, price, phoneManufacturer, batteries, phoneNumber, name, surname));
                    }
                    else if (choice2 == "3")
                    {
                        Console.WriteLine("Unos vozila\nUnesite opis:");
                        var description = Console.ReadLine();
                        while (!flag)
                        {
                            Console.WriteLine("Unesite godinu kada je kupljen:");
                            flag = int.TryParse(Console.ReadLine(), out year);
                        }
                        flag = false;
                        while (!flag)
                        {
                            Console.WriteLine("Unesite mjesec kada je kupljen:");
                            flag = int.TryParse(Console.ReadLine(), out month);
                            if (month < 1 || month > 12)
                            {
                                flag = false;
                            }
                        }
                        flag = false;
                        while (!flag)
                        {
                            Console.WriteLine("Unesite dan kada je kupljen");
                            flag = int.TryParse(Console.ReadLine(), out day);
                            if (day < 1 || day > 31)
                            {
                                flag = false;
                            }
                        }
                        flag = false;
                        while (!flag)
                        {
                            Console.WriteLine("Broj mjeseci garancije:");
                            flag = int.TryParse(Console.ReadLine(), out warranty);
                        }
                        flag = false;
                        while (!flag)
                        {
                            Console.WriteLine("Cijena:");
                            flag = double.TryParse(Console.ReadLine(), out price);
                        }
                        Console.WriteLine("Koji je proizvođač, od ponuđenih");
                        foreach (var name in Enum.GetNames(typeof(VehicleManufacturer)))
                        {
                            Console.Write(name + " ");
                        }
                        Console.Write("\n");

                        flag = false;
                        VehicleManufacturer vehicleManufacturer = VehicleManufacturer.Ford;
                        while (!flag)
                        {
                            var input = Console.ReadLine();
                            foreach (var name in Enum.GetValues(typeof(VehicleManufacturer)))
                            {
                                if (name.ToString().ToUpper() == input.ToUpper())
                                {
                                    flag = true;
                                    vehicleManufacturer = (VehicleManufacturer)name;
                                }
                            }
                            if (!flag)
                            {
                                Console.WriteLine("Niste upisali jedan od ponuđenih, ponovite: ");
                            }
                        }
                        flag = false;
                        var yearE   = 0;
                        var monthE  = 0;
                        var dayE    = 0;
                        var mileage = 0;
                        while (!flag)
                        {
                            Console.WriteLine("Unesite godinu kada ističe registracija:");
                            flag = int.TryParse(Console.ReadLine(), out yearE);
                        }
                        flag = false;
                        while (!flag)
                        {
                            Console.WriteLine("Unesite mjesec");
                            flag = int.TryParse(Console.ReadLine(), out monthE);
                            if (monthE < 1 || monthE > 12)
                            {
                                flag = false;
                            }
                        }
                        flag = false;
                        while (!flag)
                        {
                            Console.WriteLine("Unesite dan:");
                            flag = int.TryParse(Console.ReadLine(), out dayE);
                            if (dayE < 1 || dayE > 31)
                            {
                                flag = false;
                            }
                        }
                        flag = false;
                        while (!flag)
                        {
                            Console.WriteLine("Kilometraza na vozilu: ");
                            flag = int.TryParse(Console.ReadLine(), out mileage);
                        }
                        vehicles.Add(new Vehicle(description, new DateTime(year, month, day), warranty, price, vehicleManufacturer, new DateTime(yearE, monthE, dayE), mileage));
                    }
                    else
                    {
                        Console.WriteLine("Niste odabrali neku od postojećih opcija, unos prekinut");
                    }
                    break;

                case "2":
                    Console.WriteLine("Za brisanje kompjutera unesite 1, mobitela 2, vozila 3");
                    choice2 = Console.ReadLine();
                    if (choice2 == "1")
                    {
                        var serialN = "";
                        foreach (var c in computers)
                        {
                            Console.WriteLine(c.SerialNumber.ToString() + " " + c.ComputerManufacturer + " " + c.OS);
                        }
                        Console.WriteLine("Unesite prvih 5 znakova serijskog broja racunala koje zelite obrisati: ");
                        serialN = Console.ReadLine();
                        if (EraseComputer(serialN, computers))
                        {
                            Console.WriteLine("Obrisan");
                        }
                        else
                        {
                            Console.WriteLine("Brisanje nije uspjelo");
                        }
                    }
                    else if (choice2 == "2")
                    {
                        var serialN = "";
                        foreach (var m in mobilePhones)
                        {
                            Console.WriteLine(m.SerialNumber.ToString() + " " + m.PhoneManufacturer.ToString() + " " + m.PhoneNumber);
                        }
                        Console.WriteLine("Unesite prvih 5 znakova serijskog broja mobitela koje zelite obrisati: ");
                        serialN = Console.ReadLine();
                        if (ErasePhone(serialN, mobilePhones))
                        {
                            Console.WriteLine("Obrisan");
                        }
                        else
                        {
                            Console.WriteLine("Brisanje nije uspjelo");
                        }
                    }
                    else if (choice2 == "3")
                    {
                        var serialN = "";
                        foreach (var v in vehicles)
                        {
                            Console.WriteLine(v.SerialNumber.ToString() + " " + v.VehicleManufacturer);
                        }
                        Console.WriteLine("Unesite prvih 5 znakova serijskog broja vozila koje zelite obrisati: ");
                        serialN = Console.ReadLine();
                        if (EraseVehicle(serialN, vehicles))
                        {
                            Console.WriteLine("Obrisan");
                        }
                        else
                        {
                            Console.WriteLine("Brisanje nije uspjelo");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Niste odabrali neku od postojećih opcija, brisanje prekinuto");
                    }
                    break;

                case "3":
                    Console.WriteLine("Unesite serijski broj: ");
                    var serialNumber = Console.ReadLine();
                    var found        = false;
                    foreach (var c in computers)
                    {
                        if (c.SerialNumber.ToString() == serialNumber)
                        {
                            Console.WriteLine($"Opis: {c.Description} kupljen:{c.PurchaseDate} garancija:{c.WarrantyLength} cijena:{c.Price}"
                                              + $" proizvođač:{c.ComputerManufacturer} baterije:{c.Batteries} os:{c.OS} laptop:{c.Laptop}");
                            found = true;
                        }
                    }
                    foreach (var m in mobilePhones)
                    {
                        if (m.SerialNumber.ToString() == serialNumber)
                        {
                            Console.WriteLine($"Opis: {m.Description} kupljen:{m.PurchaseDate} garancija:{m.WarrantyLength} cijena:{m.Price}"
                                              + $" proizvođač:{m.PhoneManufacturer} baterije:{m.Batteries} ime vlasnika:{m.OwnerName}" +
                                              $" prezime vlasnika:{m.OwnerSurname} broj:{m.PhoneNumber}");
                            found = true;
                        }
                    }
                    foreach (var v in vehicles)
                    {
                        if (v.SerialNumber.ToString() == serialNumber)
                        {
                            Console.WriteLine($"Opis: {v.Description} kupljen:{v.PurchaseDate} garancija:{v.WarrantyLength} cijena:{v.Price}"
                                              + $" proizvođač:{v.VehicleManufacturer} registracija do:{v.RegistrationExpiration} kilometraža:{v.Mileage}");
                            found = true;
                        }
                    }
                    if (!found)
                    {
                        Console.WriteLine("U inventaru ne postoji taj serijski broj");
                    }
                    break;

                case "4":
                    Console.WriteLine("Za koju godinu želite popis računala kojima garancija tada istječe:");
                    var yearEx          = int.Parse(Console.ReadLine());
                    var warrantyExpires = new List <Computer>();
                    ListComputersByYear(yearEx, computers, warrantyExpires);
                    foreach (var c in warrantyExpires)
                    {
                        Console.WriteLine($"serijski broj {c.SerialNumber}, kupljen: {c.PurchaseDate}, mjeseci garancije:{c.WarrantyLength} ");
                    }
                    break;

                case "5":
                    var count = CountBatteries(computers, mobilePhones);
                    Console.WriteLine("Broj tehološke opreme s baterijama: " + count);
                    break;

                case "6":
                    Console.WriteLine("Proizvođači mobitela: ");
                    foreach (var pm in Enum.GetNames(typeof(PhoneManufacturer)))
                    {
                        Console.Write(pm + " ");
                    }
                    Console.Write("\n");
                    Console.WriteLine("Po kojem proizvođaču želite pretražiti: ");
                    var manufacturer       = Console.ReadLine();
                    var searchManufacturer = new List <MobilePhone>();
                    SearchPhonesByManufacturer(mobilePhones, manufacturer, searchManufacturer);
                    foreach (var m in searchManufacturer)
                    {
                        Console.WriteLine($"proizvođač:{m.PhoneManufacturer} broj mobitela:{m.PhoneNumber} serijski broj:{m.SerialNumber}");
                    }
                    break;

                case "7":
                    Console.WriteLine("Operacijski sustavi: ");
                    foreach (var name in Enum.GetNames(typeof(OperatingSystem)))
                    {
                        Console.Write(name + " ");
                    }
                    Console.Write("\n");
                    Console.WriteLine("Po kojem OS-u želite pretražiti: ");
                    var os       = Console.ReadLine();
                    var searchOS = new List <Computer>();
                    SearchComputersByOS(computers, os, searchOS);
                    foreach (var c in searchOS)
                    {
                        Console.WriteLine($"OS:{c.OS} proizvođač:{c.ComputerManufacturer} serijski broj:{c.SerialNumber}");
                    }
                    break;

                case "8":
                    Console.WriteLine("Za koju godinu želite popis mobitela kojima garancija tada istječe:");
                    var yearWarrantyExpires   = int.Parse(Console.ReadLine());
                    var warrantyExpiresPhones = new List <MobilePhone>();
                    ListPhonesByYear(yearWarrantyExpires, mobilePhones, warrantyExpiresPhones);
                    foreach (var p in warrantyExpiresPhones)
                    {
                        Console.WriteLine($"ime vlasnika:{p.OwnerName} prezime vlasnika:{p.OwnerSurname}  broj mobitela {p.PhoneNumber}");
                    }
                    break;

                case "9":
                    Console.WriteLine("Ispis vozila kojima registracija ističe sljedećih mjesec dana:");
                    var warrantyExpiresVehicles = new List <Vehicle>();
                    InTheNextMonth(vehicles, warrantyExpiresVehicles);
                    foreach (var v in warrantyExpiresVehicles)
                    {
                        Console.WriteLine($"serijski broj:{v.SerialNumber} proizvođač:{v.VehicleManufacturer} registracija istjece:{v.RegistrationExpiration}");
                    }
                    break;

                case "10":
                    Console.WriteLine("Cijene vozila:");
                    double newPriceWehicle;
                    foreach (var v in vehicles)
                    {
                        newPriceWehicle = PriceVehicle(v.Price, v.Mileage);
                        var difference = v.Price - newPriceWehicle;
                        Console.WriteLine($"serijski broj:{v.SerialNumber} pocetna cijena:{v.Price} kilometraza:{v.Mileage} trenutna cijena:{newPriceWehicle} razlika:{difference}");
                    }
                    Console.WriteLine("Cijene opreme:");
                    double newPriceEquipment;
                    foreach (var m in mobilePhones)
                    {
                        newPriceEquipment = PriceEquipment(m.Price, m.PurchaseDate);
                        var difference = m.Price - newPriceEquipment;
                        Console.WriteLine($"serijski broj:{m.SerialNumber} pocetna cijena:{m.Price} kupljen:{m.PurchaseDate} trenutna cijena:{newPriceEquipment} razlika:{difference}");
                    }
                    foreach (var c in computers)
                    {
                        newPriceEquipment = PriceEquipment(c.Price, c.PurchaseDate);
                        var difference = c.Price - newPriceEquipment;
                        Console.WriteLine($"serijski broj:{c.SerialNumber} pocetna cijena:{c.Price} kupljen:{c.PurchaseDate} trenutna cijena:{newPriceEquipment} razlika:{difference}");
                    }
                    break;

                default:
                    break;
                }
            }while (choice != "11");
        }
 public GSMStatic(string model, PhoneManufacturer manufacturer, string owner, float price,
     BatteryEnumeration battery, DisplayEnumeration display)
     : base(model, manufacturer, owner, price, battery, display)
 {
 }