/// <summary> /// Adds item inventory to DB /// </summary> /// <param name="i">Item inventory</param> /// <returns>Item inventory</returns> public ItemInventoryModel BuyItem(ItemInventoryModel i) { var newItemInventory = new itemInventory { itemId = i.ItemId, teamId = i.GroupId, quantity = i.Quantity }; _db.itemInventories.InsertOnSubmit(newItemInventory); try { _db.SubmitChanges(); } catch (Exception e) { Console.WriteLine(e); } ItemInventoryModel outgoing = GetItemInventory(i.ItemId, i.GroupId); return(outgoing); }
/// <summary> /// Performs item trade /// </summary> /// <param name="tm">Trade</param> /// <returns>Changed item inventories</returns> public List <ItemInventoryModel> TradeItem(TradingModel tm) { var itemInventories = new List <ItemInventoryModel>(); var itemInventory = new ItemInventoryModel(); IQueryable <itemInventory> query = (from itemInv in _db.itemInventories where itemInv.itemId == tm.ItemId && itemInv.teamId == tm.Buyer select itemInv); if (query.Count() != 0) { itemInventory result = query.First(); result.quantity += tm.Amount; if (result.quantity != null) { itemInventory = new ItemInventoryModel(result.Id, tm.Buyer, tm.ItemId, (double)result.quantity); } } else { itemInventory = new ItemInventoryModel(0, tm.Buyer, tm.ItemId, tm.Amount); _inventoryDal.BuyItem(itemInventory); } // Submit the changes to the database. try { _db.SubmitChanges(); itemInventories.Add(itemInventory); ValueDal.IncreaseOrDecreaseCash(tm.Buyer, -tm.Price); } catch (Exception e) { Console.WriteLine(e); // Provide for exceptions. } if (tm.Owner != 0) { query = (from itemInv in _db.itemInventories where itemInv.itemId == tm.ItemId && itemInv.teamId == tm.Owner select itemInv); if (query.Count() != 0) { itemInventory result = query.First(); result.quantity -= tm.Amount; if (result.quantity != null) { itemInventory = new ItemInventoryModel(result.Id, tm.Buyer, tm.ItemId, (double)result.quantity); } } // Submit the changes to the database. try { _db.SubmitChanges(); itemInventories.Add(itemInventory); ValueDal.IncreaseOrDecreaseCash(tm.Owner, tm.Price); } catch (Exception e) { Console.WriteLine(e); // Provide for exceptions. } } return(itemInventories); }