static void Main(string[] args) { Console.WriteLine("+-+-+-+-+-+-+-+-+"); Console.WriteLine("|O|P|E|R|A|T|E|R|"); Console.WriteLine("+-+-+-+-+-+-+-+-+"); Console.WriteLine(); Client <IGatewayConnection> cli = new Client <IGatewayConnection>("mbgateway", Konstante.GATEWAY_IP, Konstante.GATEWAY_PORT.ToString(), "GatewayConnection"); IGatewayConnection gatewayProxy = cli.GetProxy(); bool uspesnoUlogovan = false; User ulogovanUser = new User(); while (!uspesnoUlogovan) { Console.WriteLine("Username:"******"Password:"******""; ConsoleKeyInfo key; do { key = Console.ReadKey(true); // Backspace Should Not Work if (key.Key != ConsoleKey.Backspace) { pass += key.KeyChar; Console.Write("*"); } else { Console.Write("\b"); } } // Stops Receving Keys Once Enter is Pressed while (key.Key != ConsoleKey.Enter); pass = pass.Replace("\r", ""); string passSifrovano = BitConverter.ToString(Sifrovanje.sifrujCBC(pass, Konstante.ENCRYPTION_KEY)); ulogovanUser = gatewayProxy.ClientToBankCheckLogin(userSifrovano, passSifrovano, "operater"); if (ulogovanUser != null) { Console.WriteLine(); Console.WriteLine("Uspesno logovanje " + ulogovanUser.Username); uspesnoUlogovan = true; } else { Console.WriteLine(); Console.WriteLine("Neuspesno logovanje"); uspesnoUlogovan = false; } } Console.WriteLine("Korisnici koji su na ovom operateru:"); OperatorDB.operatorName = ulogovanUser.Username; ucitajRacune(OperatorDB.operatorName); ucitajKorisnike(OperatorDB.operatorName); foreach (var item in OperatorDB.BazaKorisnika.Values) { Console.WriteLine(item.Username); } //OperatorServer server = new OperatorServer(); //server.Start(); Server2 <IOperatorConnection> server = new Server2 <IOperatorConnection>("localhost", Konstante.INITIAL_OPERATER_PORT.ToString(), "OperaterConnection", typeof(OperaterConnection)); // Javi banci na kom ip-u i portu slusas string sifrovanUsername = BitConverter.ToString(Sifrovanje.sifrujCBC(ulogovanUser.Username, Konstante.ENCRYPTION_KEY)); if (!gatewayProxy.ClientAndOperatorToBankSetIpAndPort(sifrovanUsername, server.ipAddress, server.connectedPort.ToString())) { // Ukoliko vec postoji instanca tipa telenora, ugasi aplikaciju ili ponovo loguj itd... Environment.Exit(0); } gatewayProxy.CheckIntoGateway(server.ipAddress, server.connectedPort.ToString(), CertManager.Formatter.ParseName(WindowsIdentity.GetCurrent().Name)); // Iscitaj iz xml-a // Ako je sve proslo ok, uzmi bazu svih racuna i klijenata ciji je operater npr telenor //string serializedList = gatewayProxy.OperatorToBankGetOperatorsClients(sifrovanUsername); //List<UserIRacun> aktivniKorisnici = ListSerializer.DeserializeString(serializedList); //foreach (var item in aktivniKorisnici) //{ // OperatorDB.BazaRacuna.Add(item.Racun.BrojRacuna,item.Racun); //} // U novom threadu prodji kroz sve aktivne korisnike i pozovi im sendBill Thread sendBillThread = new Thread(() => SendBill(gatewayProxy, sifrovanUsername)); sendBillThread.Start(); Console.ReadKey(); gatewayProxy.OperatorToBankShutdownOperator(ulogovanUser.Username); }
/* * */ static void Main(string[] args) { Console.WriteLine("+-+-+-+-+-+-+"); Console.WriteLine("|C|L|I|E|N|T|"); Console.WriteLine("+-+-+-+-+-+-+"); Console.WriteLine(); // Prvo konekcija na server radi pristupanja bazi podataka ( gde admin postoji?) // Prvo autentifikacija, u zavisnosti od toga gleda se da li je admin ili ne (iz nekog txt-a) // ??? string kljuc = Konstante.ENCRYPTION_KEY; Client <IGatewayConnection> cli = new Client <IGatewayConnection>("mbgateway", Konstante.GATEWAY_IP, Konstante.GATEWAY_PORT.ToString(), "GatewayConnection"); IGatewayConnection gatewayProxy = cli.GetProxy(); Console.WriteLine(">Login"); User ulogovanUser = new User(); bool uspesnoLogovanje = false; while (!uspesnoLogovanje) { Console.WriteLine("Username:"******"Password:"******""; ConsoleKeyInfo key; do { key = Console.ReadKey(true); // Backspace Should Not Work if (key.Key != ConsoleKey.Backspace) { pass += key.KeyChar; Console.Write("*"); } else { Console.Write("\b"); } } // Stops Receving Keys Once Enter is Pressed while (key.Key != ConsoleKey.Enter); pass = pass.Replace("\r", ""); string passSifrovano = BitConverter.ToString(Sifrovanje.sifrujCBC(pass, kljuc)); ulogovanUser = gatewayProxy.ClientToBankCheckLogin(userSifrovano, passSifrovano, "client"); if (ulogovanUser != null) { uspesnoLogovanje = true; } else { Console.WriteLine("\nNeuspesno logovanje"); } } if (ulogovanUser != null) { string userSifrovanoZaRacun = BitConverter.ToString(Sifrovanje.sifrujCBC(ulogovanUser.Username, kljuc)); Console.WriteLine("Uspesno logovanje " + ulogovanUser.Username); KlientskiRacun.racun = gatewayProxy.ClientToBankUzmiKlijentskiRacun(userSifrovanoZaRacun); if (KlientskiRacun.racun == null) { Console.WriteLine("Ne postoji klijentski racun "); } else { Console.WriteLine("Klijentski racun:" + KlientskiRacun.racun.BrojRacuna); } // podici server za klijenta i javiti banci sa metodomSetIpAndPort na kom portu i ip adresi slusa //ClientServer server = new ClientServer(); //server.Start(); //string sifrovanUsername = BitConverter.ToString(Sifrovanje.sifrujCBC(ulogovanUser.Username, Konstante.ENCRYPTION_KEY)); //gatewayProxy.ClientToBankSetIpAndPortClient(sifrovanUsername, server.ipAddress, server.port.ToString()); Server2 <IClientConnection> server = new Server2 <IClientConnection>("localhost", Konstante.INITIAL_CLIENT_PORT.ToString(), "ClientConnection", typeof(ClientConnection)); string sifrovanUsername = BitConverter.ToString(Sifrovanje.sifrujCBC(ulogovanUser.Username, Konstante.ENCRYPTION_KEY)); gatewayProxy.ClientToBankSetIpAndPortClient(sifrovanUsername, server.ipAddress, server.connectedPort.ToString()); // Javi gatewayu da te doda u listu instanci gatewayProxy.CheckIntoGateway(server.ipAddress, server.connectedPort.ToString(), CertManager.Formatter.ParseName(WindowsIdentity.GetCurrent().Name)); if (ulogovanUser.Uloga == "admin") { MeniAdmin(gatewayProxy); } else if (ulogovanUser.Uloga == "korisnik") { MeniKorisnik(gatewayProxy); } } Console.ReadKey(); gatewayProxy.ClientToBankShutdownClient(ulogovanUser.Username); }