private void ConvertBtn_Click(object sender, EventArgs e) { try { IBalanceState fromCurrency = null; double balanceCount = Convert.ToDouble(fromTxtBx.Text); if (fromUSDChkBx.Checked && !fromUAHChkBx.Checked && !fromEURChkBx.Checked) { fromCurrency = (USDBalanceState)StateFactoryHolder.factory.GetBalanceState("USD"); } else if (!fromUSDChkBx.Checked && fromUAHChkBx.Checked && !fromEURChkBx.Checked) { fromCurrency = (UAHBalanceState)StateFactoryHolder.factory.GetBalanceState("UAH"); } else if (!fromUSDChkBx.Checked && !fromUAHChkBx.Checked && fromEURChkBx.Checked) { fromCurrency = (EURBalanceState)StateFactoryHolder.factory.GetBalanceState("EUR"); } else { throw new Exception(); } IBalance balance = new Balance(balanceCount, fromCurrency); if (toUSDChkBx.Checked && !toUAHChkBx.Checked && !toEURChkBx.Checked) { balance.ConvertToUSD(); } else if (!toUSDChkBx.Checked && toUAHChkBx.Checked && !toEURChkBx.Checked) { balance.ConvertToUAH(); } else if (!toUSDChkBx.Checked && !toUAHChkBx.Checked && toEURChkBx.Checked) { balance.ConvertToEUR(); } else { throw new Exception(); } toTxtBx.Text = balance.GetStrValue(); } catch { toTxtBx.Text = "error..."; } }