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);
        }
예제 #4
0
        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));
        }