/// <summary> /// Updates the appearance of each cell in the game board according to it's /// corresponding <see cref="Tile"/>'s state. /// </summary> private void DrawGameBoard() { foreach (Button button in grd_GameBoard.Children) { string buttonName = button.Name; // Button name format: "btn_{row}{col}" string correspondingTilePos = buttonName.Replace("btn_", ""); Tile correspondingTile = gameModel.getTileOnBoard(correspondingTilePos); if (correspondingTile != null) { if (correspondingTile.Corp != null) { // Retrieve correct enum member for color lookup. ECorporation corpName = correspondingTile.Corp.Name; button.Background = aquireStyle.GetActiveCorpColor(corpName); if (gameModel.getCorporationTiles(corpName).Count >= 11) { button.BorderBrush = Brushes.Black; button.BorderThickness = new Thickness(4); } } else { button.Background = Brushes.White; } } else { button.Background = Brushes.SlateGray; } } }
public void Insert() { ECorporation eCorporation = new ECorporation(); BCorporation bCorporation = new BCorporation(); BAudit bAudit = new BAudit(); short routes = 0; eCorporation.CodeCorporation = Aleatory.GetString(2); eCorporation.Name = Aleatory.GetString(8); eCorporation.State = Aleatory.GetShort(); eCorporation.Audit.UserRegister = Aleatory.GetString(8); using (TransactionScope ts = new TransactionScope(TransactionScopeOption.RequiresNew)) { bCorporation.Insert(eCorporation); ECorporation insertedCorporation = bCorporation.Select(eCorporation); if (insertedCorporation != null && insertedCorporation.Name == eCorporation.Name && insertedCorporation.State == eCorporation.State) { routes++; } EAudit lastAudit = bAudit.Select(eCorporation.Audit).Where(x => x.UserRegister == eCorporation.Audit.UserRegister && x.TypeEvent == "Insert").FirstOrDefault(); if (lastAudit != null) { routes++; } } Assert.AreEqual(routes, 2); }
public void Update(ECorporation eCorporation) { eCorporation.Validar(); dCorporation.Update(eCorporation); eCorporation.Audit.TypeEvent = "Update"; bAudit.Insert(eCorporation.Audit); }
public DataRow Select(ECorporation corporation) { DaCommand command = new DaCommand("dbo.CorporationSelect"); command.AddInParameter("@CodeCorporation", DbType.String, corporation.CodeCorporation); return(ExecuteDataRow(command)); }
public void Delete(ECorporation corporation) { DaCommand command = new DaCommand("dbo.CorporationDelete"); command.AddInParameter("@CodeCorporation", DbType.String, corporation.CodeCorporation); ExecuteNonQuery(command); }
/// <summary> /// constructor, sets the name of the corporation, active status to false, and creates an empty List for Tiles. /// </summary> /// <param name="nameOfCorporation">(string) the name of the corporation</param> /// <param name="s"></param> public Corporation(ECorporation nameOfCorporation, int s = 0) { this.name = nameOfCorporation; this.active = false; this.tiles = new List <Tile>(); initialValue = s; }
public void Update(ECorporation corporation) { DaCommand command = new DaCommand("dbo.CorporationUpdate"); command.AddInParameter("@CodeCorporation", DbType.String, corporation.CodeCorporation); command.AddInParameter("@Name", DbType.String, corporation.Name); command.AddInParameter("@State", DbType.Int16, corporation.State); ExecuteNonQuery(command); }
/// <summary> /// Gives a free stock to the player. /// </summary> /// <param name="player">player to give stock</param> /// <param name="corporation">corporation that has stock</param> /// <returns>true if bank has stock and is given to player</returns> public bool giveFreeStock(Player player, ECorporation corporation) { if (this.removeStock(corporation, 1)) { player.addStock(corporation, 1); return(true); } return(false); }
public void Delete() { bool result = false; BUserCompany bUserCompany = new BUserCompany(); EUserCompany eUserCompany = new EUserCompany(); EUserCompany insertedUserCompany = new EUserCompany(); EUserCompany deletedUserCompany = new EUserCompany(); BCorporation bCorporation = new BCorporation(); ECorporation eCorporation = new ECorporation(); BCompany bCompany = new BCompany(); ECompany eCompany = new ECompany(); BUser bUser = new BUser(); EUser eUser = new EUser(); TransactionScope ts = new TransactionScope(TransactionScopeOption.RequiresNew); eCorporation.CodeCorporation = Aleatory.GetString(2); eCorporation.Name = Aleatory.GetString(15); eCorporation.State = Aleatory.GetShort(); eCorporation.Audit.UserRegister = Aleatory.GetString(8); bCorporation.Insert(eCorporation); eCompany.CodeCompany = Aleatory.GetString(2); eCompany.CodeCorporation = eCorporation.CodeCorporation; eCompany.Ruc = Aleatory.GetString(11); eCompany.LongName = Aleatory.GetString(15); eCompany.State = Aleatory.GetShort(); eCompany.Audit.UserRegister = Aleatory.GetString(8); bCompany.Insert(eCompany); eUser.CodeUser = Aleatory.GetString(8); eUser.Name = Aleatory.GetString(8); eUser.Password = Aleatory.GetString(8); eUser.State = Aleatory.GetShort(); eUser.Audit.UserRegister = Aleatory.GetString(8); bUser.Insert(eUser); eUserCompany.CodeUser = eUser.CodeUser; eUserCompany.CodeCompany = eCompany.CodeCompany; bUserCompany.Insert(eUserCompany); insertedUserCompany = bUserCompany.Select(eUserCompany); if (insertedUserCompany != null) { bUserCompany.Delete(eUserCompany); } deletedUserCompany = bUserCompany.Select(eUserCompany); if (deletedUserCompany == null) { result = true; } Assert.IsTrue(result); }
/// <summary> /// Sets the content of each <see cref="Corporation"/> button with the name /// of that corporation. /// </summary> private void SetCorpButtonContent() { foreach (KeyValuePair <ECorporation, Button> corpEntry in corporationsView) { ECorporation currentCorp = corpEntry.Key; Button currentButton = corpEntry.Value; currentButton.Content = currentCorp; } }
public ECorporation Select(ECorporation corporation) { ECorporation result = null; DataRow row = dCorporation.Select(corporation); if (row != null) { result = new ECorporation(row, row.GetColumns()); } return(result); }
public void Update() { short routes = 0; BAudit bAudit = new BAudit(); EAudit eAudit = null; BCompany bCompany = new BCompany(); ECompany eCompany = new ECompany(); ECompany updatedCompany = new ECompany(); BCorporation bCorporation = new BCorporation(); ECorporation eCorporation = new ECorporation(); TransactionScope ts = new TransactionScope(TransactionScopeOption.RequiresNew); eCorporation.CodeCorporation = Aleatory.GetString(2); eCorporation.Name = Aleatory.GetString(8); eCorporation.State = Aleatory.GetShort(); eCorporation.Audit.UserRegister = Aleatory.GetString(8); bCorporation.Insert(eCorporation); eCompany.CodeCompany = Aleatory.GetString(2); eCompany.Ruc = Aleatory.GetString(11); eCompany.CodeCorporation = eCorporation.CodeCorporation; eCompany.LongName = Aleatory.GetString(8); eCompany.State = Aleatory.GetShort(); eCompany.Audit.UserRegister = Aleatory.GetString(8); bCompany.Insert(eCompany); eCompany.LongName = Aleatory.GetString(8); eCompany.State = Aleatory.GetShort(); eCompany.Audit.UserRegister = Aleatory.GetString(8); bCompany.Update(eCompany); updatedCompany = bCompany.Select(eCompany); if (updatedCompany != null && updatedCompany.CodeCompany == eCompany.CodeCompany && updatedCompany.CodeCorporation == eCompany.CodeCorporation && updatedCompany.LongName != eCompany.LongName && updatedCompany.State == eCompany.State) { routes++; } eAudit = bAudit.Select(eCompany.Audit). Where(x => x.UserRegister == eCompany.Audit.UserRegister && x.Code == eCompany.Audit.Code && x.TypeEvent == "Update").FirstOrDefault(); if (eAudit != null) { routes++; } ts.Dispose(); }
public void Delete(ECorporation corporation) { dCorporation.Delete(corporation); if (dCorporation.ExistsReference()) { Message = string.Format("La Corporación '{0}' tiene referencias en el Sistema, no se puede eliminar el registro.", corporation.Name); throw new Exception(Message); } corporation.Audit.TypeEvent = "Delete"; bAudit.Insert(corporation.Audit); }
public void Insert(ECorporation eCorporation) { eCorporation.Validar(); dCorporation.Insert(eCorporation); if (dCorporation.ExistsPrimaryKey()) { Message = string.Format("El código de Corporación '{0}' ya existe en el Sistema, no se puede crear el registro.", eCorporation.CodeCorporation); throw new Exception(Message); } eCorporation.Audit.TypeEvent = "Insert"; bAudit.Insert(eCorporation.Audit); }
/// <summary> /// Chooses the corporation to form /// </summary> /// <param name="corporation">A corporation enumeration</param> /// <exception cref="InvalidProgramException">Thrown when attempting to make an illegal choice</exception> public override void chooseCorporation(ECorporation corporation) { // Find the corporation in the valid references foreach (Corporation c in validCorpReferences) { if (corporation == c.Name) { adjacentTiles.Add(connector); c.formCorporation(adjacentTiles); return; } } throw new InvalidProgramException("Unable to choose corporation. It is not inactive."); }
public void Delete() { short routes = 0; BAudit bAudit = new BAudit(); EAudit eAudit = null; BCompany bCompany = new BCompany(); ECompany eCompany = new ECompany(); BCorporation bCorporation = new BCorporation(); ECorporation eCorporation = new ECorporation(); TransactionScope ts = new TransactionScope(TransactionScopeOption.RequiresNew); eCorporation.CodeCorporation = Aleatory.GetString(2); eCorporation.Name = Aleatory.GetString(8); eCorporation.State = 1; eCorporation.Audit.UserRegister = Aleatory.GetString(8); bCorporation.Insert(eCorporation); eCompany.CodeCompany = Aleatory.GetString(2); eCompany.Ruc = Aleatory.GetString(11); eCompany.CodeCorporation = eCorporation.CodeCorporation; eCompany.LongName = Aleatory.GetString(8); eCompany.State = Aleatory.GetShort(); eCompany.Audit.UserRegister = Aleatory.GetString(8); bCompany.Insert(eCompany); if (bCompany.Select(eCompany) != null) { routes++; } bCompany.Delete(eCompany); if (bCompany.Select(eCompany) == null) { routes++; } eAudit = bAudit.Select(eCompany.Audit). Where(x => x.UserRegister == eCompany.Audit.UserRegister && x.TypeEvent == "Delete" && x.Code == eCompany.Audit.Code).FirstOrDefault(); if (eAudit != null) { routes++; } ts.Dispose(); Assert.AreEqual(routes, 3); }
/// <summary> /// Sells stock at the current price to the bank /// </summary> /// <param name="bank">The bank</param> /// <param name="corporation">Corporation stock is associated with</param> /// <param name="qty">The number of stocks</param> /// <returns></returns> public bool sellStock(Bank bank, ECorporation corporation, int qty) { // Check if they have stocks if (this.countStocks(corporation) < qty) { return(false); } int sellPrice = this.stocks[corporation].getStockPrice() * qty; adjustMoney(sellPrice); // Perform stock transaction this.removeStock(corporation, qty); bank.addStock(corporation, qty); return(true); }
/// <summary> /// Chooses the corporation that will survive in a tie between largest size merger /// </summary> /// <param name="corporation">The survivor or overtaker</param> /// <exception cref="InvalidProgramException">Thrown when making an illegal corporation choice</exception> public override void chooseCorporation(ECorporation corporation) { if (!validCorporationChoices.Contains(corporation)) // Illegal choice { throw new InvalidProgramException("Corporation is not a valid choice."); } foreach (Corporation corporation1 in mergerCorporations) { if (corporation1.Name == corporation) { overtaker = corporation1; notifyDefunctStock(); break; } } }
public void Select() { short routes = 0; BCompany bCompany = new BCompany(); ECompany eCompany = new ECompany(); BCorporation bCorporation = new BCorporation(); ECorporation eCorporation = new ECorporation(); ECompany selectCompany = new ECompany(); TransactionScope ts = new TransactionScope(TransactionScopeOption.RequiresNew); eCompany.CodeCompany = Aleatory.GetString(2); eCompany.Ruc = Aleatory.GetString(11); eCompany.LongName = Aleatory.GetString(8); eCompany.ShortName = Aleatory.GetString(8); eCompany.State = 1; eCompany.Audit.UserRegister = Aleatory.GetString(8); selectCompany = bCompany.Select(eCompany); if (selectCompany == null) { routes++; } eCorporation.CodeCorporation = Aleatory.GetString(2); eCorporation.Name = Aleatory.GetString(8); eCorporation.State = 1; eCorporation.Audit.UserRegister = "uni test"; bCorporation.Insert(eCorporation); eCompany.CodeCorporation = eCorporation.CodeCorporation; bCompany.Insert(eCompany); selectCompany = bCompany.Select(eCompany); if (selectCompany != null && selectCompany.LongName == eCompany.LongName && selectCompany.ShortName == eCompany.ShortName) { routes++; } ts.Dispose(); Assert.AreEqual(routes, 2); }
/// <summary> /// Calculates the total purchase price of buying stocks. /// </summary> /// <returns>A string representing the price as money.</returns> private int CalculatePurchaseTotal() { int purchaseTotal = 0; foreach (KeyValuePair <Slider, ECorporation> corpSlider in corporationSliders) { Slider slider = corpSlider.Key; ECorporation corporation = corpSlider.Value; if (model.isActiveCorporation(corporation)) { int purchaseQty = (int)slider.Value; int purchasePrice = model.getStockValue(corporation); purchaseTotal += purchaseQty * purchasePrice; } } return(purchaseTotal); }
/// <summary> /// Trades stocks at a rate of 2:1 for the overtaking corporation stock. /// </summary> /// <param name="player">The player trading stocks</param> /// <param name="defunct">The defunct corporation</param> /// <param name="overtaker">The overtaking corporation</param> /// <param name="qty">The quantity of stocks to get in the overtaking corporation</param> /// <returns></returns> public bool tradeStock(Player player, ECorporation defunct, ECorporation overtaker, int qty) { // Does the bank have enough stocks? if (this.countStocks(overtaker) < qty) { return(false); } // Does the player have the stocks to trade? int defunctQty = qty * 2; if (player.countStocks(defunct) < defunctQty) { return(false); } // Do the trade player.removeStock(defunct, defunctQty); this.addStock(defunct, defunctQty); this.removeStock(overtaker, qty); player.addStock(overtaker, qty); return(true); }
public void Select() { ECorporation eCorporation = new ECorporation(); BCorporation bCorporation = new BCorporation(); BAudit bAudit = new BAudit(); short routes = 0; eCorporation.CodeCorporation = Aleatory.GetString(2); eCorporation.Name = Aleatory.GetString(8); eCorporation.State = 1; eCorporation.Audit.UserRegister = Aleatory.GetString(8); using (TransactionScope ts = new TransactionScope(TransactionScopeOption.RequiresNew)) { if (bCorporation.Select(eCorporation) == null) { routes++; } bCorporation.Insert(eCorporation); ECorporation insertedCorporation = bCorporation.Select(eCorporation); if (insertedCorporation != null && insertedCorporation.Name == eCorporation.Name && insertedCorporation.State == eCorporation.State) { routes++; } EAudit lastAudit = bAudit.Select(eCorporation.Audit)[0]; if (lastAudit != null && lastAudit.UserRegister == eCorporation.Audit.UserRegister && lastAudit.TypeEvent.ToLower() == "insert") { routes++; } } Assert.AreEqual(routes, 3); }
/// <summary> /// Purchases stock from the bank at the current price. /// </summary> /// <param name="bank">The bank</param> /// <param name="corporation">The corporation</param> /// <param name="qty">The amount of stocks</param> /// <returns>True if successful</returns> public bool purchaseStock(Bank bank, ECorporation corporation, int qty) { if (stocksPurchasedPerTurn + qty > 3) { throw new InvalidOperationException("Nope, you can't purchase more than 3 stocks per turn!"); } // Check if we have enough money int purchasePrice = this.stocks[corporation].getStockPrice() * qty; if (money < purchasePrice) { return(false); } // Does bank have stock if (!bank.removeStock(corporation, qty)) { return(false); } adjustMoney(-1 * purchasePrice); addStock(corporation, qty); stocksPurchasedPerTurn += qty; return(true); }
/// <summary> /// Constructor for the stock Merger window /// </summary> public StockMerger(GameModel model) { InitializeComponent(); this.model = model; aquireStyle = new AquireStyle(); ECorporation defunct = model.getDefunctCorporation(); ECorporation overtaker = model.getOvertaker(); int inHand = model.getCurrentPlayerStocks(defunct); int overtakerInBank = model.getBankStocks(overtaker); int maximum = (int)inHand / 2; // Get player info. grp_PlayerInfo.Header = model.getCurrentPlayerName(); tb_PlayerMoney.Text = "$" + model.getCurrentPlayerMoney(); // Get defunct corporation and overtaker corporation. lbl_merger.Content = "Merging " + defunct.ToString() + " into " + overtaker.ToString(); // Set defunct label values. lbl_defunct.Content = defunct.ToString(); lbl_defunct_inBank.Content = model.getBankStocks(defunct); lbl_defunct_inHand.Content = inHand; lbl_defunct_price.Content = "$" + model.getStockValue(defunct).ToString(); brd_DefunctBorder.BorderBrush = aquireStyle.GetActiveCorpColor(defunct); // Set overtaker label values. lbl_overtaker.Content = overtaker.ToString(); lbl_overtaker_inBank.Content = overtakerInBank; lbl_overtaker_inHand.Content = model.getCurrentPlayerStocks(overtaker); lbl_overtaker_price.Content = "$" + model.getStockValue(overtaker).ToString(); brd_OvertakerBorder.BorderBrush = aquireStyle.GetActiveCorpColor(overtaker); // Set slider maximum values. slider_defunct_sell.Maximum = inHand; slider_defunct_trade.Maximum = (maximum < overtakerInBank ? maximum : overtakerInBank); }
/// <summary> /// Returns the number of stocks in a Stockpile /// </summary> /// <param name="corp">The corporation the stocks belong to</param> /// <returns></returns> public int countStocks(ECorporation corp) { return(stocks[corp].NumStocks); }
/// <summary> /// Removes stocks from a StockPile /// </summary> /// <param name="corp">The coporation the stocks belong to</param> /// <param name="qty">Number of stocks to remove</param> /// <returns></returns> public bool removeStock(ECorporation corp, int qty) { return(stocks[corp].remove(qty)); }
/// <summary> /// Gets a color which represents the inactive version of the named corporation. /// </summary> /// <param name="corpName">The corporation whose color is being retrieved.</param> /// <returns>A <see cref="SolidColorBrush"/> of the retrieved color.</returns> public SolidColorBrush GetInactiveCorpColor(ECorporation corpName) { return(new SolidColorBrush( (Color)ColorConverter.ConvertFromString(inactiveCorpColors[corpName]))); }
/// <summary> /// Corporations cannot be selected during a standard expansion /// </summary> /// <param name="corporation">Corporation chosen</param> public override void chooseCorporation(ECorporation corporation) { throw new InvalidOperationException("Unable to choose a corporation during an expansion."); }
/// <summary> /// Chooses the corporation from the valid choices /// </summary> /// <param name="corporation">One of the valid corporation enumerations</param> public abstract void chooseCorporation(ECorporation corporation);
public void handleGiveFreeStock(ECorporation corporation) { // Do nothing }