/// <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; }