Ejemplo n.º 1
0
 public void DeleteSymbol(string symbolRemove, PortfolioEntry portfolioEntry)
 {
     DeleteSymbol(RetrieveSymbols(portfolioEntry)[symbolRemove]);
 }
Ejemplo n.º 2
0
        // 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;
        }
Ejemplo n.º 3
0
        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;
            }
        }
Ejemplo n.º 4
0
        public TransactionEntry AddSymbol(string fullSymbolName, TransactionDataArgs args, PortfolioEntry entry)
        {
            if (!fullSymbolName.Contains(":")) return null;

            return AddSymbol(fullSymbolName.Split(':')[0], fullSymbolName.Split(':')[1], args, entry);
        }
Ejemplo n.º 5
0
        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;
            }
        }
Ejemplo n.º 6
0
        /// <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;
            }
        }