예제 #1
0
 public Transakcja(double kwota, Firma odbiorca, Karta karta, DateTime data)
 {
     this.kwota    = kwota;
     this.odbiorca = odbiorca;
     this.karta    = karta;
     this.data     = data;
 }
예제 #2
0
        public Karta wydajKarte(Klient klient) //bank wydaje karte klientowi; czyli tworzy karte u siebie i przypisuje ją do klienta
        {
            Karta nowaKarta = new Karta(this.id + this.generujUnikalnyNumerKarty(), this);

            karty.Add(nowaKarta); //TODO: stworzyć słownik łączący kartę z jej właścicielem

            if (!klienci.Exists(szukanyKlient => szukanyKlient == klient))
            {
                klienci.Add(klient); //jeśli bank nie ma jeszcze klienta to dodaj
            }
            return(nowaKarta);
        }
        public bool zrealizujPotwierdzenie(Karta karta, double kwota, Firma firma)
        {
            //dokonaj walidacji karty
            Bank       bank       = this.wyszukajBankPoId(karta);
            Transakcja transakcja = new Transakcja(kwota, firma, karta, DateTime.Now);


            bool wynikAutoryzacji = bank.autoryzacjaTransakcji(transakcja);

            this.zapiszDoArchiwum(transakcja, wynikAutoryzacji);

            return(wynikAutoryzacji);
        }
        private Bank wyszukajBankPoId(Karta karta)
        {
            /*
             * Numer karty kredytowej to 16 cyfr zapisanych w 4 blokach po 4 cyfry. Co się ukrywa pod tymi cyframi?
             *
             *  Pierwsza cyfra oznacza organizację, która wydała tę kartę. Może ona wskazywać na linie lotnicze, korporacje paliwowe, telekomunikacyjne,
             *  handel oraz banki. Jeśli pierwszą cyfrą będzie 4 lub 5 wtedy oznacza to, że wystawcą karty jest bank.
             *  6 pierwszych cyfr oznacza organizację, która te kartę wydała lub ją autoryzuje.
             *  11 kolejnych cyfr oznacza indywidualny numer klienta.
             *  Ostatnia 16 cyfra oznacza cyfrę kontrolną.
             */
            string id = karta.numer_karty.Substring(0, 6);
            Bank   bank;

            idBank.TryGetValue(id, out bank);
            //powinno działać hehe
            return(bank);
        }
예제 #5
0
 public void przedluzWaznosc(Karta karta, int okres)
 {
     //TODO: obsłużyć wyjątki (exceptions)
     karty.Find(szukanaKarta => szukanaKarta == karta).Termin_wygasniecia.AddMonths(okres);
 }
예제 #6
0
 public void usunKarte(Karta karta)
 {
     this.karty.Remove(karta);
 }
예제 #7
0
 public void dodajKarte(Karta karta)
 {
     this.karty.Add(karta);
 }