public StockPanelViewModel() { this.createEquityCommand = new DelegateCommand(this.CreateEquity); this.createBondCommand = new DelegateCommand(this.CreateBond); this.addCommand = new DelegateCommand(this.AddStock); this.cancelCommand = new DelegateCommand(this.CancelStock); this.stockCreator = new StockCreator(); }
public void GenerateName_ForEquity_UnderZero() { //Arrange var stockManager = new StockCreator(); //Act var result = stockManager.GenerateName(StockType.Equity, -3); }
private double FetchCurrentPrice(string isin) { var stockCreator = new StockCreator(); var stock = stockCreator.Create(new StockDescriptor(isin, "F")); var result = DatumLocatorDefinitions.CurrentPrice.FetchSingle <double>(stock); return(result.Value); }
public void GenerateName_ForBond_NotEmptyCollection() { //Arrange var stockManager = new StockCreator(); //Act var result = stockManager.GenerateName(StockType.Bond, 2); //Assert Assert.AreEqual(result, "Bond3"); }
public void GenerateName_ForEquity_NotEmptyCollection() { //Arrange var stockManager = new StockCreator(); //Act var result = stockManager.GenerateName(StockType.Equity, 1); //Assert Assert.AreEqual(result, "Equity2"); }
public void GenerateStockWeight_NotZeroMarkedValue_EmptyCollection() { //Arrange var stockManager = new StockCreator(); //Act var result = stockManager.GenerateStockWeight(1.0, null); //Assert Assert.AreEqual(result, 0); }
public void GenerateTransactionCost_ForBond() { //Arrange var stockManager = new StockCreator(); var marketValue = 200.0; //Act var result = stockManager.GenerateTransactionCost(StockType.Bond, marketValue); //Assert Assert.AreEqual(result, 4); }
public void GenerateMarketValue_QuantityBelowZero() { //Arrange var stockManager = new StockCreator(); double price = 5.0; int quantity = -10; //Act var result = stockManager.GenerateMarketValue(price, quantity); //Assert Assert.AreEqual(result, -50.0); }
public void GenerateColor_ForEBondAndHighTransactionCost_ReturnsRed() { //Arrange var stockManager = new StockCreator(); var marketValue = 5; var transactionCost = 100001; //Act var result = stockManager.GenerateColor(StockType.Bond, marketValue, transactionCost); //Assert Assert.AreEqual(result, Brushes.Red); }
public void GenerateColor_MarketValueAboveZeroOrZero_ReturnsBlack() { //Arrange var stockManager = new StockCreator(); var marketValue = 5; var transactionCost = 0; //Act var result = stockManager.GenerateColor(StockType.Equity, marketValue, transactionCost); //Assert Assert.AreEqual(result, Brushes.Black); }
public void GenerateStockWeight_ZeroMarkedValue_NotEmptyCollection() { //Arrange var stockManager = new StockCreator(); var collection = new ObservableCollection <Stock>(); collection.Add(new Stock { MarketValue = 0.0 }); //Act var result = stockManager.GenerateStockWeight(0.0, collection); //Assert Assert.AreEqual(result, 0); }
protected override void Run() { var creator = new StockCreator(); var tradedStocks = new List <TradedStock>(); foreach (var stock in StockArgs.Stocks) { try { tradedStocks.Add(creator.Create(stock).TradedStock); } catch (Exception ex) { myLogger.Error(ex, "Failed to create stock: {0}", stock.Isin); } } AddStocksToCatalog(tradedStocks, StockArgs.Catalog.Name); }
protected override void Run() { var creator = new StockCreator(); using (var tom = Engine.ServiceProvider.CreateEntityRepository()) { var stocksToDelete = StockArgs.Stocks .SelectMany(stockDesc => tom.Stocks.Where(s => s.Isin == stockDesc.Isin).ToList()) .ToList(); if (!stocksToDelete.Any()) { Console.WriteLine("no stocks found to delete"); return; } Console.WriteLine("We are going to remove the following stocks: "); foreach (var stock in stocksToDelete) { Console.WriteLine(" Name: {0,-40} Isin: {1}", stock.Company.Name, stock.Isin); } Console.Write("Are you sure [y/n]:"); var answer = Console.ReadLine(); if (!answer.Equals("y", StringComparison.OrdinalIgnoreCase)) { Console.WriteLine("aborted"); return; } foreach (var stock in stocksToDelete) { // TODO: actually we should have a cascading delete foreach (var ts in stock.TradedStocks.ToList()) { tom.DeleteObject(ts); } tom.DeleteObject(stock); } tom.SaveChanges(); } }
//Read and provide the current price change internal static IList <IStock> ReadPriceChanges(string file) { CultureInfo provider = CultureInfo.InvariantCulture; StreamReader reader = new StreamReader(File.OpenRead(file)); var allStocks = new List <IStock>(); string ticker = null; string exchange = null; decimal price = decimal.MinValue; decimal priceChange = decimal.MinValue; decimal percentagePriceChange = decimal.MinValue; DateTime date = default(DateTime); while (!reader.EndOfStream) { string line = reader.ReadLine(); #region Search For Identifiers if (line.Contains(tickerIdentifier)) { ticker = ExtractValueFromString(line, tickerIdentifier); } else if (line.Contains(exchangeIdentifier)) { exchange = ExtractValueFromString(line, exchangeIdentifier); } else if (line.Contains(dateIdentifier)) { string dateTimeAsString = ExtractValueFromString(line, dateIdentifier); date = DateTime.Parse(dateTimeAsString, null, DateTimeStyles.RoundtripKind); } else if (line.Contains(priceIdentifier)) { string a = ExtractValueFromString(line, priceIdentifier); price = decimal.Parse(a); } else if (line.Contains(priceChangeIdentifier)) { priceChange = decimal.Parse(ExtractValueFromString(line, priceChangeIdentifier)); } else if (line.Contains(percentagePriceChangeIdentifier)) { percentagePriceChange = decimal.Parse(ExtractValueFromString(line, percentagePriceChangeIdentifier)); } #endregion #region If all the data is collected //Check if all the necessary data is collected if (!string.IsNullOrEmpty(ticker) && !string.IsNullOrEmpty(exchange) && price != decimal.MinValue && priceChange != decimal.MinValue && percentagePriceChange != decimal.MinValue && date != default(DateTime)) { //having the full information we can create the stock IStock currentStock = StockCreator.CreateStock (ticker, exchange, date, price, priceChange, percentagePriceChange); allStocks.Add(currentStock); //clear the variables for the next stock ticker = null; exchange = null; price = decimal.MinValue; priceChange = decimal.MinValue; percentagePriceChange = decimal.MinValue; } #endregion } reader.Close(); File.Delete(file); return(allStocks); }