public Transakcja(double kwota, Firma odbiorca, Karta karta, DateTime data) { this.kwota = kwota; this.odbiorca = odbiorca; this.karta = karta; this.data = data; }
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); }
public void przedluzWaznosc(Karta karta, int okres) { //TODO: obsłużyć wyjątki (exceptions) karty.Find(szukanaKarta => szukanaKarta == karta).Termin_wygasniecia.AddMonths(okres); }
public void usunKarte(Karta karta) { this.karty.Remove(karta); }
public void dodajKarte(Karta karta) { this.karty.Add(karta); }