OtoGaleriZoom

 avatar
AmoryLorch
csharp
2 years ago
9.1 kB
8
Indexable
Never
//Program.cs
using OtoGaleri;
using System.Text.RegularExpressions;

Galeri Galeri = new Galeri();

Uygulama();
void Uygulama() {
    while (true)
    {
        Menu();
        string secim = Console.ReadLine();
        switch (secim)
        {
            case "1": case "K": Galeri.ArabaKirala(); break;
            case "2": case "T": Galeri.ArabaTeslimAl();              break;          
            case "3": case "R": Galeri.KiradakiArabalarıListele();   break;
            case "4": case "M": Galeri.GaleridekiArabalarıListele(); break;
            case "5": case "A": Galeri.TumArabalariListele(); break;
            //case "6": case "I": Kiralamaİptali();             break;
            case "7": case "Y": Galeri.ArabaEkle(Galeri.Arabalar); break;
            case "8": case "S": Galeri.ArabaSil(); break;
            case "9": case "G": Galeri.BilgileriGoster();            break;
            default: break;

        }

    }
     }
void Menu()
{
    Console.WriteLine("Galeri Otomasyon");
    Console.WriteLine("1 - Araba Kirala(K)");
    Console.WriteLine("2 - Araba Teslim Al(T)");
    Console.WriteLine("3 - Kiradaki Arabaları Listele(R)");
    Console.WriteLine("4 - Galerideki Arabaları Listele(M)");
    Console.WriteLine("5 - Tüm Arabaları Listele(A)");
    Console.WriteLine("6 - Kiralama İptali(I)");
    Console.WriteLine("7 - Araba Ekle(Y)");
    Console.WriteLine("8 - Araba Sil(S)");
    Console.WriteLine("9 - Bilgileri Göster(G)");

}


//Galeri.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace OtoGaleri
{
    public class Galeri
    {
        Regex regex = new Regex("([0-9]{1,2})([a-zA-Z]{1,3})([0-9]{1,4})$");
        public List<Araba> Arabalar = new List<Araba>();
        public void ArabaEkle(List<Araba> araba)
        {

            this.Arabalar.Add(new Araba());
            Console.WriteLine(Arabalar.Count);
            Arabalar.ForEach(x => Console.WriteLine($"{x.Plaka} {x.Marka} {x.KiralamaBedeli} {x.KiralamaSayisi} {x.Araba_Tipi}"));
        }

        public void ArabaKirala()
        {
            Console.WriteLine("-Araba Kirala-");

            // saatler verdim regex için, 00 ile başlayan plaka sorunu var.
            Console.Write("Kiralanacak arabanın plakası: ");
            string kiralanacakArabaPlakasi = Console.ReadLine();
            byte byteKAP;
            if (regex.IsMatch(kiralanacakArabaPlakasi) == true)
            {
                Console.WriteLine("DOruğ");
                if (!Arabalar.Exists(x => x.Plaka.Equals(kiralanacakArabaPlakasi)))
                {
                    Console.WriteLine("Galeriye ait bu plakada bir araba yok.");
                }
                if (Arabalar.Exists(x => x.Plaka.Equals(kiralanacakArabaPlakasi)))
                {
                    foreach (Araba i in Arabalar)
                    {
                        if (i.Durum == DURUM.Kirada)
                        {
                            Console.WriteLine("Araba şu anda kirada. Farklı araba seçiniz.");
                        }
                    }
                }
                // 
                if (Arabalar.Exists(x => x.Plaka.Equals(kiralanacakArabaPlakasi)))
                {
                    Console.Write("Kiralama süresi: ");
                    Araba.KiralamaSuresi = int.Parse(Console.ReadLine());
                    Console.WriteLine(kiralanacakArabaPlakasi + " Plakalı araba " + Araba.KiralamaSuresi + " saatliğine kiralandı.");
                    //Arabalar.Exists(x => x.Equals(kiralanacakArabaPlakasi.Equals(x.Durum = DURUM.Kirada)));
                    //Arabalar.Exists(x => x.Durum.Equals(x.Durum = DURUM.Kirada));

                    foreach (Araba i in Arabalar)
                    {
                        if (i.Plaka == kiralanacakArabaPlakasi)
                        {
                            i.Durum = DURUM.Kirada;
                        }
                    }
                }

            }

            regex.Match(kiralanacakArabaPlakasi);
            if (regex.IsMatch(kiralanacakArabaPlakasi) == false)
            {
                Console.WriteLine("Bu şekilde plaka girişi yapamazsınız. Tekrar deneyin.");
            }




        }

        public void TumArabalariListele()
        {
            Arabalar.ForEach(x => Console.WriteLine($"{x.Plaka} {x.Marka} {x.KiralamaBedeli} {x.KiralamaSayisi} {x.Araba_Tipi} {x.Durum}"));
        }

        public void ArabaTeslimAl()
        {
            Console.WriteLine("-Araba Teslim Al-");
            string teslimAlinacakAraba = Console.ReadLine();
            if (regex.IsMatch(teslimAlinacakAraba) == false)
            {
                Console.WriteLine("Bu şekilde plaka girişi yapamazsınız. Tekrar deneyin.");
            }
            else if (regex.IsMatch(teslimAlinacakAraba) == true)
            {
                if (Arabalar.Exists(x => x.Durum == DURUM.Galeride))
                {
                    Console.WriteLine("Hatalı giriş yapıldı. Araba zaten galeride.");
                }
                
            }
            else if(regex.IsMatch(teslimAlinacakAraba) == true) 
            {
                if (!Arabalar.Exists(x => x.Plaka.Equals(teslimAlinacakAraba)))
                {
                    Console.WriteLine("Galeriye ait bu plakada bir araba yok.");
                }
            }
            if (regex.IsMatch(teslimAlinacakAraba) == true) 
            {
                if (Arabalar.Exists(x => x.Plaka.Equals(teslimAlinacakAraba)))
                {
                    foreach (Araba i in Arabalar)
                    {
                        if (i.Durum == DURUM.Kirada)
                        {
                            i.Durum = DURUM.Galeride;
                            Console.WriteLine("Araba galeride beklemeye alındı.");
                        }
                    }
                }
                 
               
            }
            
        }
        public void ArabaSil()
        {
            Console.Write("Silmek istediğiniz arabanın plakasını giriniz: ");
            string sil = Console.ReadLine();
            bool silKontrol = Arabalar.Exists(x => x.Plaka.Equals(sil));
            if (silKontrol)
            {
                Arabalar.RemoveAll(x => x.Plaka.Equals(sil));
                Console.WriteLine("Araba silindi.");
            }
        }
        public void KiradakiArabalarıListele()
        {
            foreach (Araba i in Arabalar) { if (i.Durum == DURUM.Kirada) { Console.WriteLine( $"{i.Plaka} {i.Marka} {i.KiralamaBedeli} {i.KiralamaSayisi} {i.Araba_Tipi}"          ); } }
        }
        public void GaleridekiArabalarıListele()
        {
            foreach (Araba i in Arabalar) { if (i.Durum == DURUM.Galeride) { Console.WriteLine($"{i.Plaka} {i.Marka} {i.KiralamaBedeli} {i.KiralamaSayisi} {i.Araba_Tipi}"); } }
        }
        public void BilgileriGoster()
        {
            Console.WriteLine("Toplam araba sayısı: " + Arabalar.Count());
            //Console.WriteLine("Kiradaki araba sayısı: " + Galeri.Arabalar.Count());
            //Console.WriteLine("Bekleyen araba sayısı: " );
            //Console.WriteLine("Toplam araba kiralama süresi: ");
            //Console.WriteLine("Toplam araba kiralama adedi: ");
            //Console.WriteLine("Ciro: ");
        }
    }
}

//Araba.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static OtoGaleri.Galeri;

namespace OtoGaleri
{
    public class Araba
    {
        public DURUM Durum;
        public string Plaka { get; set; }
        public string Marka { get; set; }
        public float KiralamaBedeli { get; set; }
        public int KiralamaSayisi { get; set; }
        public ARABA_TIPI Araba_Tipi ;
        private static int KiralamaSure;
        public static int KiralamaSuresi {
            get 
            {
                return KiralamaSure;
            } 
            set 
            {
                 KiralamaSure = value;
            } 
        }
        
        public Araba()
        {
            Console.Write("Plaka: ");
            this.Plaka = Console.ReadLine();
            Console.Write("Marka: ");
            this.Marka = Console.ReadLine();
            Console.Write("Kiralama Bedeli: ");
            this.KiralamaBedeli = float.Parse(Console.ReadLine());
            Console.Write("Araba Tipi: \nSuv 1\nHatchback 2\nSedan 3");
            this.Araba_Tipi = (ARABA_TIPI)int.Parse(Console.ReadLine()) ;
            this.Durum = DURUM.Galeride;
        }
    }
    public enum ARABA_TIPI
    {
        Empty, SUV, Hatchback, Sedan
    }
    public enum DURUM
    {
        Empty, Kirada, Galeride
    }

}