예제 #1
0
        static void Main(string[] args)
        {
            CarManager      carManager      = new CarManager(new EfCarDal());
            ColorManager    colorManager    = new ColorManager(new EfColorDal());
            BrandManager    brandManager    = new BrandManager(new EfBrandDal());
            UserManager     userManager     = new UserManager(new EfUserDal());
            CustomerManager customerManager = new CustomerManager(new EfCustomerDal());
            RentalManager   rentalManager   = new RentalManager(new EfRentalDal());

            Console.WriteLine("1- Araba ekle");
            Console.WriteLine("2- Araba güncelle");
            Console.WriteLine("3- Araba sil");
            Console.WriteLine("4- Marka Ekle");
            Console.WriteLine("5- Marka Güncelle");
            Console.WriteLine("6- Marka Sil");
            Console.WriteLine("7- Renk Ekle");
            Console.WriteLine("8- Renk Güncelle");
            Console.WriteLine("9- Renk Sil");
            Console.WriteLine("10- Arabaları Listele");
            Console.WriteLine("11- Markaları Listele");
            Console.WriteLine("12- Renkleri Listele");
            Console.WriteLine("13- Kullanıcı Ekle");
            Console.WriteLine("14- Müşteri Ekle");
            Console.WriteLine("15- Araba Kirala");
            Console.Write("Yapmak istediğiniz işlemi seçin:");
            var selectedOperation = Convert.ToInt32(Console.ReadLine());

            switch (selectedOperation)
            {
            case 1:
                var carToAdd = new Car();
                Console.Write("Marka Id: ");
                carToAdd.BrandId = Convert.ToInt32(Console.ReadLine());
                Console.Write("Renk Id: ");
                carToAdd.ColorId = Convert.ToInt32(Console.ReadLine());
                Console.Write("Model yılı: ");
                carToAdd.ModelYear = Convert.ToInt16(Console.ReadLine());
                Console.Write("Günlük fiyat: ");
                carToAdd.DailyPrice = Convert.ToDecimal(Console.ReadLine());
                Console.Write("Araba ismi: ");
                carToAdd.Description = Console.ReadLine();
                var result = carManager.Add(carToAdd);
                Console.WriteLine(result.Message);
                break;

            case 2:
                ListAllCars(carManager);
                Console.Write("Güncellemek istediğiniz arabayı seçiniz: ");
                var selectedId  = Convert.ToInt32(Console.ReadLine());
                var carToUpdate = carManager.GetCarById(selectedId);
                Console.Write("Marka Id: ");
                carToUpdate.Data.BrandId = Convert.ToInt32(Console.ReadLine());
                Console.Write("Renk Id: ");
                carToUpdate.Data.ColorId = Convert.ToInt32(Console.ReadLine());
                Console.Write("Model yılı: ");
                carToUpdate.Data.ModelYear = Convert.ToInt16(Console.ReadLine());
                Console.Write("Günlük fiyat: ");
                carToUpdate.Data.DailyPrice = Convert.ToDecimal(Console.ReadLine());
                Console.Write("Araba ismi: ");
                carToUpdate.Data.Description = Console.ReadLine();
                result = carManager.Update(carToUpdate.Data);
                Console.WriteLine(result.Message);
                break;

            case 3:
                ListAllCars(carManager);
                Console.Write("Silmek istediğiniz arabayı seçiniz:");
                selectedId = Convert.ToInt32(Console.ReadLine());
                var carToDelete = carManager.GetCarById(selectedId);
                result = carManager.Delete(carToDelete.Data);
                Console.WriteLine(result.Message);
                break;

            case 4:
                Console.Write("Marka adı:");
                var brand = new Brand();
                brand.Name = Console.ReadLine();
                result     = brandManager.Add(brand);
                Console.WriteLine(result.Message);
                break;

            case 5:
                ListAllBrands(brandManager);
                Console.Write("Güncellemek istediğiniz markayı seçiniz: ");
                selectedId = Convert.ToInt32(Console.ReadLine());
                var brandToUpdate = brandManager.GetBrandById(selectedId);
                Console.Write("Marka Adı: ");
                brandToUpdate.Data.Name = Console.ReadLine();
                result = brandManager.Update(brandToUpdate.Data);
                Console.WriteLine(result.Message);
                break;

            case 6:
                ListAllBrands(brandManager);
                Console.Write("Silmek istediğiniz markayı seçiniz: ");
                selectedId = Convert.ToInt32(Console.ReadLine());
                var brandToDelete = brandManager.GetBrandById(selectedId);
                result = brandManager.Delete(brandToDelete.Data);
                Console.WriteLine(result.Message);
                break;

            case 7:
                Console.Write("Renk adı:");
                var color = new Color();
                color.Name = Console.ReadLine();
                result     = colorManager.Add(color);
                Console.WriteLine(result.Message);
                break;

            case 8:
                ListAllColors(colorManager);
                Console.Write("Güncellemek istediğiniz rengi seçiniz: ");
                selectedId = Convert.ToInt32(Console.ReadLine());
                var colorToUpdate = colorManager.GetColorById(selectedId);
                Console.Write("Renk Adı: ");
                colorToUpdate.Data.Name = Console.ReadLine();
                result = colorManager.Update(colorToUpdate.Data);
                Console.WriteLine(result.Message);
                break;

            case 9:
                ListAllColors(colorManager);
                Console.Write("Silmek istediğiniz rengi seçiniz: ");
                selectedId = Convert.ToInt32(Console.ReadLine());
                var colorToDelete = colorManager.GetColorById(selectedId);
                result = colorManager.Delete(colorToDelete.Data);
                Console.WriteLine(result.Message);
                break;

            case 10:
                ListAllCars(carManager);
                break;

            case 11:
                ListAllBrands(brandManager);
                break;

            case 12:
                ListAllColors(colorManager);
                break;

            case 13:
                var userToAdd = new User();
                Console.Write("Kullanıcı adı: ");
                userToAdd.FirstName = Console.ReadLine();
                Console.Write("Kullanıcı soyadı: ");
                userToAdd.LastName = Console.ReadLine();
                Console.Write("E-posta adresi: ");
                userToAdd.Email = Console.ReadLine();
                Console.Write("Şifre: ");
                userToAdd.Password = Console.ReadLine();
                result             = userManager.Add(userToAdd);
                Console.WriteLine(result.Message);
                break;

            case 14:
                ListAllUsers(userManager);
                Console.Write("Müşteri olacak kullanıcıyı seçiniz: ");
                selectedId = Convert.ToInt32(Console.ReadLine());
                var selectedUser  = userManager.GetUserById(selectedId).Data;
                var customerToAdd = new Customer();
                customerToAdd.UserId = selectedUser.Id;
                Console.Write("Şirket adı: ");
                customerToAdd.CompanyName = Console.ReadLine();
                result = customerManager.Add(customerToAdd);
                Console.WriteLine(result.Message);
                break;

            case 15:
                ListAllCars(carManager);
                Console.Write("Kiralanacak arabayı seçiniz: ");
                var selectedCar = Convert.ToInt32(Console.ReadLine());
                result = rentalManager.CheckCarRentalStatus(selectedCar);
                if (result.Success)
                {
                    Console.WriteLine(result.Message);
                }
                else
                {
                    Console.WriteLine(result.Message);
                    break;
                }
                ListAllCustomers(customerManager);
                Console.Write("Kiralayacak müşteriyi seçiniz: ");
                var selectedCustomer = Convert.ToInt32(Console.ReadLine());
                var rentalToAdd      = new Rental();
                rentalToAdd.CarId      = selectedCar;
                rentalToAdd.CustomerId = selectedCustomer;
                rentalToAdd.RentDate   = DateTime.Now;
                var rentalResult = rentalManager.Add(rentalToAdd);
                Console.WriteLine(rentalResult.Message);
                break;
            }
        }