public void DeleteSymbol(string symbolRemove, PortfolioEntry portfolioEntry) { DeleteSymbol(RetrieveSymbols(portfolioEntry)[symbolRemove]); }
// TODO: add the detailed query here also. public Dictionary<string, PositionEntry> RetrieveSymbols(PortfolioEntry entry) { PositionFeed positionFeed = FinanceService.Query(new PositionQuery(entry.EditUri.Content + FinanceNamespace.POSITIONAPPENDQUERY + Details())); Dictionary<string, PositionEntry> symbols = new Dictionary<string, PositionEntry>(); foreach (PositionEntry positionEntry in positionFeed.Entries) { symbols.Add(positionEntry.Symbol.Exchange + ":" + positionEntry.Symbol.StockSymbol, positionEntry); } return symbols; }
public TransactionEntry AddSymbol(string exchange, string symbol, TransactionDataArgs args, PortfolioEntry entry) { PositionFeed positionFeed = FinanceService.Query(new PositionQuery(entry.EditUri.Content + FinanceNamespace.POSITIONAPPENDQUERY + Details())); TransactionEntry transactionEntry = new TransactionEntry() { TransactionData = new TransactionData() { Type = args.TransactionType, Date = args.Date.ToString(), Shares = args.Shares, Notes = args.Notes, Commission = new Commission(), Price = new Price() } }; PositionEntry positionEntry = new PositionEntry() { Symbol = new Symbol() { StockSymbol = symbol, Exchange = exchange } }; transactionEntry.TransactionData.Commission.Money.Add(new Money() { Amount = args.Commission, CurrencyCode= args.CurrencyCode }); transactionEntry.TransactionData.Price.Money.Add(new Money() { Amount = args.Price, CurrencyCode= args.CurrencyCode }); Uri uri = new Uri(positionFeed.Feed + "/" + positionEntry.Symbol.Exchange + ":" + positionEntry.Symbol.StockSymbol + "/" + FinanceNamespace.TRANSACTIONS); try { return FinanceService.Insert(uri, transactionEntry); } catch (Exception ex) { Console.WriteLine("Exception while trying to add symbol={0} to portfolio={1} and transaction: ", positionEntry.Symbol.Exchange + ":" + positionEntry.Symbol.StockSymbol, entry.Title.Text); Console.WriteLine("Type={0}, Date={1}, Shares={2}, Notes={3}, Commission={4}, Price={5}", transactionEntry.TransactionData.Type, transactionEntry.TransactionData.Date, transactionEntry.TransactionData.Shares, transactionEntry.TransactionData.Notes, transactionEntry.TransactionData.Commission, transactionEntry.TransactionData.Price); Console.WriteLine("Exception: {0}", ex.Message); return null; } }
public TransactionEntry AddSymbol(string fullSymbolName, TransactionDataArgs args, PortfolioEntry entry) { if (!fullSymbolName.Contains(":")) return null; return AddSymbol(fullSymbolName.Split(':')[0], fullSymbolName.Split(':')[1], args, entry); }
public TransactionEntry AddSymbol(string exchange, string symbol, PortfolioEntry entry) { PositionFeed positionFeed = FinanceService.Query(new PositionQuery(entry.EditUri.Content + FinanceNamespace.POSITIONAPPENDQUERY + Details())); TransactionEntry transactionEntry = new TransactionEntry() { TransactionData = new TransactionData() { Type = TransactionTypes.BUY } }; PositionEntry positionEntry = new PositionEntry() { Symbol = new Symbol() { StockSymbol = symbol, Exchange = exchange } }; Uri uri = new Uri(positionFeed.Feed + "/" + positionEntry.Symbol.Exchange + ":" + positionEntry.Symbol.StockSymbol + "/" + FinanceNamespace.TRANSACTIONS); try { return FinanceService.Insert(uri, transactionEntry); } catch (Exception ex) { Console.WriteLine("Exception while trying to add symbol={0} to portfolio={1}", symbol + ":" + exchange, entry.Title.Text); Console.WriteLine("Exception: {0}", ex.Message); return null; } }
/// <summary> /// Create a portfolio /// </summary> /// <param name="title">Name of the portfolio</param> /// <param name="portfolioData">Settings for the portfolio</param> /// <returns>Returns the response from the server</returns> public PortfolioEntry CreatePortfolio(string title, PortfolioData portfolioData) { // Create a new entry. PortfolioEntry entry = new PortfolioEntry(); // Set the name of the portfolio entry.Title.Text = title; // Set the portfolio data entry.PortfolioData = portfolioData; // Default to USD if (entry.PortfolioData.CurrencyCode.Length == 0) entry.PortfolioData.CurrencyCode = "USD"; // Return the response from the server. try { return FinanceService.Insert(new Uri(FinanceNamespace.PORTFOLIOS), entry); } catch (GDataRequestException ex) { Console.WriteLine("Unable to create portfolio, Exception: {0}", ex.Message); return null; } }