public void execute(BankWindow bankWindow) { if (bankWindow.getCurrentOperation().getTimeOperation() != 0) { bankWindow.getCurrentOperation().doOperation(); } else { switch (bankWindow.getClient().getNumberOperation()) { case Credit.CREDIT: bankWindow.setCountCredits(bankWindow.getCountCredits() + 1); break; case Deposit.DEPOSIT: bankWindow.setCountDeposits(bankWindow.getCountDeposits() + 1); break; case Card.CARD: bankWindow.setCountCards(bankWindow.getCountCards() + 1); break; case Transfer.TRANSFER: bankWindow.setCountTransfers(bankWindow.getCountTransfers() + 1); break; case Payment.PAYMENT: bankWindow.setCountPayments(bankWindow.getCountPayments() + 1); break; } bankWindow.setCountAllOperations(bankWindow.getCountAllOperations() + 1); bankWindow.setClient(null); bankWindow.setCurrentOperation(null); if(bankWindow.isBreak == true) { bankWindow.setState(new BankWindowBreakState()); bankWindow.isBreak = false; } else bankWindow.setState(new BankWindowFreeState()); } }
protected override BankWindow createOperations(int number, OperationManager manager) { OperationFactory factory = new OperationFactory(); BankWindow bankWindow = new BankWindow(number, manager); Random r = new Random(); List<int> operations = new List<int>(); int count = r.Next(1, NUMBER_OF_OPERATION + 1); while (true) { bool flag = true; int numberOperation = r.Next(1, NUMBER_OF_OPERATION + 1); for (int k = 0; k < operations.Count; k++) { if (numberOperation == operations[k]) flag = false; } if (flag) { bankWindow.addOperation(factory.createOperation(numberOperation)); operations.Add(numberOperation); count--; } if (count == 0) break; } return bankWindow; }
protected override BankWindow createOperations(int number, OperationManager manager) { OperationFactory factory = new OperationFactory(); BankWindow bankWindow = new BankWindow(number, manager, new BankWindowFreeState()); bankWindow.addOperation(factory.createOperation(Transfer.TRANSFER)); bankWindow.addOperation(factory.createOperation(Payment.PAYMENT)); return bankWindow; }
protected override BankWindow createOperations(int number) { OperationFactory factory = new OperationFactory(); BankWindow bankWindow = new BankWindow(number, new BankWindowFreeState()); bankWindow.addOperation(factory.createOperation(Credit.CREDIT)); bankWindow.addOperation(factory.createOperation(Deposit.DEPOSIT)); return bankWindow; }
protected override BankWindow createOperations(int number) { OperationFactory factory = new OperationFactory(); BankWindow bankWindow = new BankWindow(number, new BankWindowFreeState()); bankWindow.addOperation(factory.createOperation(Deposit.DEPOSIT)); bankWindow.addOperation(factory.createOperation(Card.CARD)); bankWindow.addOperation(factory.createOperation(Transfer.TRANSFER)); return bankWindow; }
protected override BankWindow createOperations(int number, OperationManager manager) { OperationFactory factory = new OperationFactory(); BankWindow bankWindow = new BankWindow(number, manager); bankWindow.addOperation(factory.createOperation(Credit.CREDIT)); bankWindow.addOperation(factory.createOperation(Deposit.DEPOSIT)); bankWindow.addOperation(factory.createOperation(Card.CARD)); bankWindow.addOperation(factory.createOperation(Transfer.TRANSFER)); bankWindow.addOperation(factory.createOperation(Payment.PAYMENT)); return bankWindow; }
public Bank() { //this.listBankWindows = new List<BankWindow>(); this.clientQueue = new ClientQueue(); this.periodTimer = 1000; this.numberOfNewClients = 0; this.timer = new Timer(periodTimer); this.timer.Elapsed += OnTimedEvent; this.countBankWindows = 0; this.nameClients = new List<string>(); string line; System.IO.StreamReader file = new System.IO.StreamReader(@"nameClients.txt",System.Text.Encoding.Default); while ((line = file.ReadLine()) != null) { this.nameClients.Add(line); } file.Close(); bankWindows = new BankWindowComposite(); BankWindowComponent one = new BankWindowComposite(); BankWindowComponent two = new BankWindowComposite(); BankWindowComponent three = new BankWindowComposite(); BankWindowComponent oneWindow = new BankWindow(1); oneWindow.addOperation(new Credit()); oneWindow.addOperation(new Deposit()); bankWindows.add(oneWindow); bankWindows.add(one); BankWindowComponent twoWindow = new BankWindow(2); twoWindow.addOperation(new Credit()); twoWindow.addOperation(new Deposit()); twoWindow.addOperation(new Card()); BankWindowComponent threeWindow = new BankWindow(3); threeWindow.addOperation(new Payment()); threeWindow.addOperation(new Transfer()); threeWindow.addOperation(new CurrencyExchangeAdapter(new CurrencyExchange())); one.add(twoWindow); one.add(threeWindow); one.add(two); BankWindowComponent fourWindow = new BankWindow(4); fourWindow.addOperation(new Deposit()); fourWindow.addOperation(new Transfer()); two.add(fourWindow); two.add(three); BankWindowComponent fiveWindow = new BankWindow(5); fiveWindow.addOperation(new Deposit()); fiveWindow.addOperation(new Transfer()); fiveWindow.addOperation(new Card()); three.add(fiveWindow); }
public void build(BankWindowCreator creator, int number, OperationManager manager) { bankWindow = creator.createWindow(number, manager); List<IOperation> operations = bankWindow.getProcessOperation(); for (int i = 0; i < operations.Count; i++) { switch (operations[i].getNumberOperation()) { case Credit.CREDIT: operations[i].setNameOperation("Credits"); break; case Deposit.DEPOSIT: operations[i].setNameOperation("Deposits"); break; case Card.CARD: operations[i].setNameOperation("Cards"); break; case Transfer.TRANSFER: operations[i].setNameOperation("Transfers"); break; case Payment.PAYMENT: operations[i].setNameOperation("Payments"); break; } } bankWindow.setBuilder(new EngBuilder()); }
public BankWindow(BankWindow bw) { this.number = bw.number; this.processOperation = new List<IOperation>(); List<IOperation> oper = bw.getProcessOperation(); for (int k = 0; k < oper.Count; k++) { this.addOperation(oper[k]); } if(bw.getClient() != null) this.client = new Client(bw.client); if (bw.getCurrentOperation() != null) { switch (bw.currentOperation.getNumberOperation()) { case Credit.CREDIT: this.currentOperation = new Credit(); break; case Deposit.DEPOSIT: this.currentOperation = new Deposit(); break; case Card.CARD: this.currentOperation = new Card(); break; case Transfer.TRANSFER: this.currentOperation = new Transfer(); break; case Payment.PAYMENT: this.currentOperation = new Payment(); break; } this.currentOperation.setTimeOperation(bw.currentOperation.getTimeOperation()); } this.manager = new OperationManager(bw.manager); if(bw.state.GetType() == typeof(BankWindowBusyState)) { this.state = new BankWindowBusyState(); } else if (bw.state.GetType() == typeof(BankWindowFreeState)) { this.state = new BankWindowFreeState(); } else if (bw.state.GetType() == typeof(BankWindowBreakState)) { this.state = new BankWindowBreakState(); } this.isBreak = bw.isBreak; this.countAllOperations = bw.countAllOperations; this.countCredits = bw.countCredits; this.countDeposits = bw.countDeposits; this.countCards = bw.countCards; this.countTransfers = bw.countTransfers; this.countPayments = bw.countPayments; }
//добавление окна public void addBankWindow(List<string> operations) { this.countBankWindows++; BankWindow bankWindow = new BankWindow(this.countBankWindows); for (int i = 0; i < operations.Count; i++) { switch(operations[i]) { case Credit.CREDIT: bankWindow.addOperation(new Credit()); break; case Deposit.DEPOSIT: bankWindow.addOperation(new Deposit()); break; case Card.CARD: bankWindow.addOperation(new Card()); break; case Transfer.TRANSFER: bankWindow.addOperation(new Transfer()); break; case Payment.PAYMENT: bankWindow.addOperation(new Payment()); break; } } this.listBankWindows.Add(bankWindow); }
public Bank(Bank bank) { this.manager = new OperationManager(bank.manager); this.listBankWindows = new List<BankWindow>(); for (int i = 0; i < bank.countBankWindows; i++) { BankWindow bw = new BankWindow(bank.listBankWindows[i]); bw.setManager(this.manager); this.listBankWindows.Add(bw); } this.clientQueue = new ClientQueue(bank.clientQueue); this.timer = new Timer(bank.periodTimer); this.periodTimer = bank.periodTimer; this.timer.Elapsed += OnTimedEvent; this.numberOfNewClients = bank.numberOfNewClients; this.countBankWindows = bank.countBankWindows; this.nameClients = bank.nameClients; //this.timerActive = bank.timerActive; }
public void execute(BankWindow bankWindow) { }
public void build(BankWindowCreator creator, int number, OperationManager manager) { bankWindow = creator.createWindow(number, manager); bankWindow.setBuilder(new RusBuilder()); }