public static void SellShare(ShareOnMarket share, Member user) { //Add transaction PortfolioShareTransation transaction = new PortfolioShareTransation(); transaction.BuyerUsername = user.Name; transaction.DateSold = DateTime.Now; transaction.PortfolioProductId = share.PortfolioProductId; transaction.SellerUsername = share.Username; transaction.SoldAmount = share.Price; transaction.SoldFee = CalculateFee(share.Price); transaction.Units = share.SharesToSell; transaction.Save(); //Remove old share PortfolioShare Old = new PortfolioShare(share.PortfolioShareId); Old.Shares -= share.SharesToSell; Old.Save(); //Add new share PortfolioShare New = GetProperShare(share, user); New.Shares += share.SharesToSell; New.Save(); //Remove from market share.Delete(); //Earnings stats EarningsStatsManager.Add(EarningsStatsType.PortfolioUnits, transaction.SoldFee); }