Beispiel #1
0
        /// <summary>
        /// To get the storage for <paramref name="path"/>.
        /// </summary>
        /// <param name="path">Path.</param>
        /// <returns>Market data storage.</returns>
        public IMarketDataDrive GetDrive(string path)
        {
            if (path.IsEmpty() || Guid.TryParse(path, out _) /* TODO remove few versions later 2019-08-06 */)
            {
                return(DefaultDrive);
            }

            var pair = CreatePair(path);

            return(_drives.SafeAdd(pair, key =>
            {
                IMarketDataDrive drive;

                if (pair.Item2 == null)
                {
                    drive = new LocalMarketDataDrive(path);
                }
                else
                {
                    drive = new RemoteMarketDataDrive(new RemoteStorageClient(new Uri(pair.Item2.To <string>())));
                }

                NewDriveCreated?.Invoke(drive);

                return drive;
            }));
        }
            public RemoteStorageDrive(RemoteMarketDataDrive parent, SecurityId securityId, DataType dataType, StorageFormats format)
            {
                if (securityId.IsDefault())
                {
                    throw new ArgumentNullException(nameof(securityId));
                }

                if (dataType == null)
                {
                    throw new ArgumentNullException(nameof(dataType));
                }

                // TODO
                //if (drive == null)
                //	throw new ArgumentNullException(nameof(drive));

                _parent     = parent ?? throw new ArgumentNullException(nameof(parent));
                _securityId = securityId;
                _dataType   = dataType ?? throw new ArgumentNullException(nameof(dataType));
                _format     = format;
            }