public bool Equals(IMarketDataEntity other) => other != null && ClosingPrice == other.ClosingPrice && DateTime == other.DateTime && Isin == other.Isin && Name == other.Name && Volumen == other.Volumen && PreviousDayClosingPrice == other.PreviousDayClosingPrice && StockExchange == other.StockExchange;
/// <summary> /// Returns a formatted string for writing into CSV file. /// </summary> /// <param name="entity"></param> /// <param name="separator"></param> /// <param name="cultureInfo"></param> /// <returns></returns> public static string FormatForCSV(IMarketDataEntity entity, string separator, CultureInfo cultureInfo) => string.Join(separator, entity.Name.WrapWithQuotes(), entity.Isin, entity.ClosingPrice.ToString(cultureInfo), entity.DateTime.ToString(cultureInfo), entity.Volumen.ToString(cultureInfo), entity.PreviousDayClosingPrice.ToString(cultureInfo), entity.StockExchange);
public static bool TryParseFromCsv(string[] input, CultureInfo cultureInfo, out IMarketDataEntity result) { result = new MarketDataEntityBuilder() .SetName(input[0]) .SetIsin(input[1]) .SetClosingPrice(Convert.ToDecimal(input[2], cultureInfo)) .SetDateTime(Convert.ToDateTime(input[3], cultureInfo)) .SetVolumen(Convert.ToInt32(input[4])) .SetPreviousDayClosingPrice(Convert.ToDecimal(input[5], cultureInfo)) .SetStockExchange(input[6]) .Build(); if (result is null) { _logger.Warn($"Line cannot be converted into market data entity ({string.Join(",", input)})"); } return(result != null); }
public void UpdateEntityWithIsin(IMarketDataEntity entity, string isin) { if (!_fileContentLoaded) { Load(); } var foundEntities = _entities .Where(e => DateTime.Equals(e.DateTime, entity.DateTime) && string.Equals(e.Name, entity.Name)); foreach (var foundEntity in foundEntities) { if (!string.Equals(foundEntity.Isin, isin)) { foundEntity.Isin = isin; _fileContentSaved = false; } } }
public int CompareTo(IMarketDataEntity other) { var result = Name.CompareTo(other.Name); return(result != 0 ? result : DateTime.CompareTo(other.DateTime)); }