/// <summary> /// Constructor /// </summary> /// <param name="dataDirectory"></param> /// <param name="symbol"></param> /// <param name="timeFrom"></param> /// <param name="timeTo"></param> public DucascopyReader(IConfiguration configuration, IFileManager <DucascopySymbol> fileManager, DucascopySymbol symbol, DateTime?timeFrom, DateTime timeTo) { _symbol = symbol ?? throw new ArgumentNullException("symbol", "Symbol must be specified"); _configuration = configuration; _fileManager = fileManager; _files = new LinkedList <IFile>(fileManager.GetExistingFiles(symbol, timeFrom ?? symbol.StartDate, timeTo).Where(f => f.Time >= timeFrom && f.Time < timeTo)); _fileCurrent = _files.First; _stream = new DucascopyFileSteam(Path.Combine(configuration.DataPath, _fileCurrent.Value.DestinationFile)); _reader = new DucascopyFileStreamReader(symbol, _fileCurrent.Value.Time, _stream); }
/// <summary> /// Constructor /// </summary> /// <param name="stream"></param> /// <param name="fileDateTime"></param> /// <param name="symbol"></param> public DucascopyFileStreamReader(DucascopySymbol symbol, DateTime fileDateTime, Stream stream) { if (stream == null) { throw new ArgumentNullException("stream", "Stream must be specified and initialized."); } if (stream.CanSeek) { stream.Seek(0, SeekOrigin.Begin); } _stream = stream; _symbol = symbol; _fileDateTime = fileDateTime; }
public DucascopyReader Create(DucascopySymbol symbol, DateTime?timeFrom, DateTime timeTo) { return(new DucascopyReader(_configuration, _fileManager, symbol, timeFrom, timeTo)); }