/// <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);
        }
Example #2
0
        /// <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;
        }
Example #3
0
 public DucascopyReader Create(DucascopySymbol symbol, DateTime?timeFrom, DateTime timeTo)
 {
     return(new DucascopyReader(_configuration, _fileManager, symbol, timeFrom, timeTo));
 }