public bool ObrisiTransakcijuKorisnika(string korIme, int brojTransakcije) { IIdentity id = Thread.CurrentPrincipal.Identity; WindowsIdentity wID = id as WindowsIdentity; CustomPrincipal principal = new CustomPrincipal(wID); if (!principal.IsInRole("Radnik")) { MyAuditBehavior.LogNeuspesnaAutorizacija(); Console.WriteLine("Nemate permisiju..\n"); return(false); } MyAuditBehavior.LogUspesnaAutorizacija(); if (!MojaBaza.korisnici.ContainsKey(korIme)) { Console.WriteLine("Ne postoji korisnik sa zadatim korisnickim imenom " + MojaBaza.korisnici[korIme].KorisnickoIme + "\n"); return(false); } else { if (MojaBaza.korisnici[korIme].PrethodneTransakcije.Keys.Contains(brojTransakcije)) { MojaBaza.korisnici[korIme].PrethodneTransakcije.Remove(brojTransakcije); return(true); } else { Console.WriteLine("U listi korisnickih transakcija ne postoji transakcija sa tim brojem...\n"); return(false); } } }
public static void MesecnoSkidanjeProvizije() { while (!ZavrsiThread) { foreach (var korisnik in MojaBaza.korisnici) { if (korisnik.Value.StanjeRacuna < MojaBaza.provizijaZaMesecnoOdrzavanje) { if (korisnik.Value.BrojacZaOpomenu == MojaBaza.brojac) { continue; } korisnik.Value.BrojacZaOpomenu++; if (korisnik.Value.BrojacZaOpomenu == MojaBaza.brojac) { UpisUTxt.UpisOpomene(korisnik.Value.KorisnickoIme); MyAuditBehavior.LogNeuspesnoMesecnoSkidanjeProvizije(); } } korisnik.Value.StanjeRacuna -= MojaBaza.provizijaZaMesecnoOdrzavanje; MyAuditBehavior.LogUspesnoMesecnoSkidanjeProvizije(); } Thread.Sleep(MojaBaza.skalabilneSekunde * 1000); } return; #region comment ////provera da li postoji korisnik sa tim korisnickim imenom //if (MojaBaza.korisnici.ContainsKey(korIme)) //{ // if (MojaBaza.korisnici[korIme].StanjeRacuna >= MojaBaza.provizijaZaMesecnoOdrzavanje) // { // MojaBaza.korisnici[korIme].StanjeRacuna -= 200; // Console.WriteLine("Preostalo stanje na racunu korisnika " + MojaBaza.korisnici[korIme].KorisnickoIme + " je: " + MojaBaza.korisnici[korIme].StanjeRacuna + "\n"); // } // else if (MojaBaza.korisnici[korIme].StanjeRacuna < 200 && MojaBaza.korisnici[korIme].BrojacZaOpomenu < 2) // { // Console.WriteLine("Korisnik " + MojaBaza.korisnici[korIme].KorisnickoIme + " nema dovoljno sredstava za skidanje sa racuna(200, 00 RSD)"); // MojaBaza.korisnici[korIme].BrojacZaOpomenu++; // } // else if (MojaBaza.korisnici[korIme].StanjeRacuna < 200 && MojaBaza.korisnici[korIme].BrojacZaOpomenu == 2) // { // Console.WriteLine("Korisnik " + MojaBaza.korisnici[korIme].KorisnickoIme + " nema dovoljno sredstava za skidanje sa racuna i salje mu se opomena!\n"); // UpisUTxt.UpisOpomene(korIme); // UpisUTxt.IspisiPoruke(korIme); // } // else if(MojaBaza.korisnici[korIme].StanjeRacuna < 200 && MojaBaza.korisnici[korIme].BrojacZaOpomenu > 2) // { // Console.WriteLine("Opomena je vec poslata...\n"); // UpisUTxt.IspisiPoruke(korIme); // } //} //else // Console.WriteLine("Ne postoji korisnik sa zadatim korisnickim imenom " + MojaBaza.korisnici[korIme].KorisnickoIme + " za skidanje mesecne provizije...\n"); #endregion }
public bool Uplata(string korIme, string korImeUplatioc, double novac, int izbor) { //string temp = ""; IIdentity id = Thread.CurrentPrincipal.Identity; WindowsIdentity wID = id as WindowsIdentity; CustomPrincipal principal = new CustomPrincipal(wID); if (!principal.IsInRole("Korisnik")) { MyAuditBehavior.LogNeuspesnaAutorizacija(); Console.WriteLine("Nemate permisiju..\n"); return(false); } MyAuditBehavior.LogUspesnaAutorizacija(); if (!MojaBaza.korisnici.ContainsKey(korIme)) { Console.WriteLine("Ne postoji korisnik na ciji racun radnik treba da uplati pare...\n"); MyAuditBehavior.LogNeuspesnaTransakcija(); return(false); } else { /* * MojaBaza.korisnici[korIme].StanjeRacuna += novac; * MojaBaza.korisnici[korIme].PrethodneTransakcije.Add(MojaBaza.korisnici[korIme].BrTr++, novac); * Console.WriteLine("Stanje na racunu korisnika nakon uplate je: " + MojaBaza.korisnici[korIme].StanjeRacuna); * return true;*/ switch (izbor) { case 1: MojaBaza.korisnici[korIme].StanjeRacuna += novac; MojaBaza.korisnici[korIme].PrethodneTransakcije.Add(MojaBaza.korisnici[korIme].BrTr, novac); MojaBaza.korisnici[korIme].BrTr++; Console.WriteLine("Stanje na racunu korisnika " + MojaBaza.korisnici[korIme].KorisnickoIme + " nakon uplate je: " + MojaBaza.korisnici[korIme].StanjeRacuna); MyAuditBehavior.LogUspesnaTransakcija(); break; case 2: if (MojaBaza.korisnici[korImeUplatioc].StanjeRacuna > 100) { MojaBaza.korisnici[korIme].StanjeRacuna += novac; MojaBaza.korisnici[korImeUplatioc].StanjeRacuna -= 100; MojaBaza.korisnici[korIme].PrethodneTransakcije.Add(MojaBaza.korisnici[korIme].BrTr, novac); MojaBaza.korisnici[korIme].BrTr++; MyAuditBehavior.LogUspesnaTransakcija(); Console.WriteLine("Stanje na racunu korisnika " + MojaBaza.korisnici[korIme].KorisnickoIme + " nakon uplate je: " + MojaBaza.korisnici[korIme].StanjeRacuna); } else { Console.WriteLine("Nemoguce uplatiti novac"); MyAuditBehavior.LogNeuspesnaTransakcija(); return(false); } break; case 3: if (MojaBaza.korisnici[korImeUplatioc].StanjeRacuna > 0.3 * novac) { MojaBaza.korisnici[korIme].StanjeRacuna += novac; MojaBaza.korisnici[korImeUplatioc].StanjeRacuna -= 0.3 * novac; // Console.WriteLine("Stanje na racunu korisnika nakon uplate je: " + MojaBaza.korisnici[korIme].StanjeRacuna); MojaBaza.korisnici[korIme].PrethodneTransakcije.Add(MojaBaza.korisnici[korIme].BrTr, novac); MojaBaza.korisnici[korIme].BrTr++; Console.WriteLine("Stanje na racunu korisnika " + MojaBaza.korisnici[korIme].KorisnickoIme + " nakon uplate je: " + MojaBaza.korisnici[korIme].StanjeRacuna); MyAuditBehavior.LogUspesnaTransakcija(); } else { Console.WriteLine("Nemoguce uplatiti novac"); MyAuditBehavior.LogNeuspesnaTransakcija(); return(false); } break; case 4: if (MojaBaza.korisnici[korImeUplatioc].StanjeRacuna > 250) { MojaBaza.korisnici[korIme].StanjeRacuna += novac; MojaBaza.korisnici[korImeUplatioc].StanjeRacuna -= 250; MojaBaza.korisnici[korIme].PrethodneTransakcije.Add(MojaBaza.korisnici[korIme].BrTr, novac); MojaBaza.korisnici[korIme].BrTr++; Console.WriteLine("Stanje na racunu korisnika " + MojaBaza.korisnici[korIme].KorisnickoIme + " nakon uplate je: " + MojaBaza.korisnici[korIme].StanjeRacuna); MyAuditBehavior.LogUspesnaTransakcija(); } else { Console.WriteLine("Nemoguce uplatiti novac"); MyAuditBehavior.LogNeuspesnaTransakcija(); return(false); } break; } return(true); } }
static void Main(string[] args) { string srvCertCN = "PubSubEngine"; MyAuditBehavior myAuditBehavior = new MyAuditBehavior(); NetTcpBinding binding = new NetTcpBinding(); binding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Certificate; X509Certificate2 srvCert = CertManager.GetCertificateFromStorage(StoreName.TrustedPeople, StoreLocation.LocalMachine, srvCertCN); EndpointAddress address = new EndpointAddress(new Uri("net.tcp://localhost:8888/Subscriber"), new X509CertificateEndpointIdentity(srvCert)); MyServiceCallback subscriberCallback = new MyServiceCallback(); InstanceContext instanceContext = new InstanceContext(subscriberCallback); string subject, from, to; using (Subscriber proxy = new Subscriber(binding, address, subscriberCallback)) { Console.WriteLine("Connected to the PubSubEngine\n"); while (true) { proxy.RegisterSubscriber(); PrintMenu(); int choice = int.Parse(Console.ReadLine()); switch (choice) { case 1: if (proxy.UnregisterSubscriber()) { Console.WriteLine("Successfully unregistered."); } else { Console.WriteLine("Failed to unregister."); } break; case 2: Console.Write("Enter topic name: "); subject = Console.ReadLine(); Console.Write("Enter risk range: \nfrom: "); from = Console.ReadLine(); Console.Write("to: "); to = Console.ReadLine(); if (proxy.Subscribe(subject, Int32.Parse(from), Int32.Parse(to))) { Console.WriteLine("Successfully subscribed."); } else { Console.WriteLine("Unable to subscribe"); } break; case 3: Console.Write("Enter topic name: "); if (proxy.Unsubsrcibe(Console.ReadLine())) { Console.WriteLine("Successfully unsubscribed."); } else { Console.WriteLine("Unable to unsubscribe."); } break; default: Console.WriteLine("Bad input, try again."); break; } if (choice == 1) { break; } } } }