Skip to content

Commit bca8c1b

Browse files

File tree

15 files changed

+280
-268
lines changed

15 files changed

+280
-268
lines changed

Connectors/AlfaDirect/AlfaTrader.cs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
{
33
using System;
44
using System.Collections.Generic;
5+
using System.Linq;
56
using System.Security;
67
using System.Threading;
78

@@ -26,16 +27,17 @@ public sealed class AlfaTrader : Connector, IExternalCandleSource
2627
private readonly SynchronizedPairSet<long, CandleSeries> _series = new SynchronizedPairSet<long, CandleSeries>();
2728
private readonly CachedSynchronizedSet<CandleSeries> _realTimeSeries = new CachedSynchronizedSet<CandleSeries>();
2829

29-
private readonly AlfaDirectMessageAdapter _adapter;
30-
3130
/// <summary>
3231
/// Создать <see cref="AlfaTrader"/>.
3332
/// </summary>
3433
public AlfaTrader()
3534
{
36-
_adapter = new AlfaDirectMessageAdapter(TransactionIdGenerator);
35+
Adapter.InnerAdapters.Add(new AlfaDirectMessageAdapter(TransactionIdGenerator));
36+
}
3737

38-
Adapter.InnerAdapters.Add(_adapter);
38+
private AlfaDirectMessageAdapter NativeAdapter
39+
{
40+
get { return Adapter.InnerAdapters.OfType<AlfaDirectMessageAdapter>().First(); }
3941
}
4042

4143
/// <summary>
@@ -52,17 +54,17 @@ public override bool IsSupportAtomicReRegister
5254
/// </summary>
5355
public string Login
5456
{
55-
get { return _adapter.Login; }
56-
set { _adapter.Login = value; }
57+
get { return NativeAdapter.Login; }
58+
set { NativeAdapter.Login = value; }
5759
}
5860

5961
/// <summary>
6062
/// Пароль для входа в терминал.
6163
/// </summary>
6264
public string Password
6365
{
64-
get { return _adapter.Password.To<string>(); }
65-
set { _adapter.Password = value.To<SecureString>(); }
66+
get { return NativeAdapter.Password.To<string>(); }
67+
set { NativeAdapter.Password = value.To<SecureString>(); }
6668
}
6769

6870
private TimeSpan _realTimeCandleOffset = TimeSpan.FromSeconds(5);

Connectors/BarChart/BarChartTrader.cs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,35 +26,38 @@ public class BarChartTrader : Connector, IExternalCandleSource
2626
private readonly SynchronizedDictionary<long, RefFive<List<Trade>, SyncObject, bool, Security, bool>> _ticksInfo = new SynchronizedDictionary<long, RefFive<List<Trade>, SyncObject, bool, Security, bool>>();
2727
private readonly SynchronizedDictionary<long, CandleSeries> _candleSeries = new SynchronizedDictionary<long, CandleSeries>();
2828

29-
private readonly BarChartMessageAdapter _adapter;
30-
3129
/// <summary>
3230
/// Initializes a new instance of the <see cref="BarChartTrader"/>.
3331
/// </summary>
3432
public BarChartTrader()
3533
{
36-
_adapter = new BarChartMessageAdapter(TransactionIdGenerator);
37-
_adapter.AddMarketDataSupport();
34+
var adapter = new BarChartMessageAdapter(TransactionIdGenerator);
35+
adapter.AddMarketDataSupport();
36+
37+
Adapter.InnerAdapters.Add(adapter);
38+
}
3839

39-
Adapter.InnerAdapters.Add(_adapter);
40+
private BarChartMessageAdapter NativeAdapter
41+
{
42+
get { return Adapter.InnerAdapters.OfType<BarChartMessageAdapter>().First(); }
4043
}
4144

4245
/// <summary>
4346
/// Login.
4447
/// </summary>
4548
public string Login
4649
{
47-
get { return _adapter.Login; }
48-
set { _adapter.Login = value; }
50+
get { return NativeAdapter.Login; }
51+
set { NativeAdapter.Login = value; }
4952
}
5053

5154
/// <summary>
5255
/// Password.
5356
/// </summary>
5457
public string Password
5558
{
56-
get { return _adapter.Password.To<string>(); }
57-
set { _adapter.Password = value.To<SecureString>(); }
59+
get { return NativeAdapter.Password.To<string>(); }
60+
set { NativeAdapter.Password = value.To<SecureString>(); }
5861
}
5962

6063
/// <summary>

Connectors/BitStamp/BitStampTrader.cs

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
namespace StockSharp.BitStamp
22
{
3+
using System.Linq;
34
using System.Security;
45

56
using Ecng.Common;
@@ -14,16 +15,17 @@ namespace StockSharp.BitStamp
1415
[Icon("BitStamp_logo.png")]
1516
public class BitStampTrader : Connector
1617
{
17-
private readonly BitStampMessageAdapter _adapter;
18-
1918
/// <summary>
2019
/// Initializes a new instance of the <see cref="BitStampTrader"/>.
2120
/// </summary>
2221
public BitStampTrader()
2322
{
24-
_adapter = new BitStampMessageAdapter(TransactionIdGenerator);
23+
Adapter.InnerAdapters.Add(new BitStampMessageAdapter(TransactionIdGenerator));
24+
}
2525

26-
Adapter.InnerAdapters.Add(_adapter);
26+
private BitStampMessageAdapter NativeAdapter
27+
{
28+
get { return Adapter.InnerAdapters.OfType<BitStampMessageAdapter>().First(); }
2729
}
2830

2931
/// <summary>
@@ -40,26 +42,26 @@ public override bool IsSupportAtomicReRegister
4042
/// </summary>
4143
public string Key
4244
{
43-
get { return _adapter.Key.To<string>(); }
44-
set { _adapter.Key = value.To<SecureString>(); }
45+
get { return NativeAdapter.Key.To<string>(); }
46+
set { NativeAdapter.Key = value.To<SecureString>(); }
4547
}
4648

4749
/// <summary>
4850
/// Secret.
4951
/// </summary>
5052
public string Secret
5153
{
52-
get { return _adapter.Secret.To<string>(); }
53-
set { _adapter.Secret = value.To<SecureString>(); }
54+
get { return NativeAdapter.Secret.To<string>(); }
55+
set { NativeAdapter.Secret = value.To<SecureString>(); }
5456
}
5557

5658
/// <summary>
5759
/// Client ID.
5860
/// </summary>
5961
public int ClientId
6062
{
61-
get { return _adapter.ClientId; }
62-
set { _adapter.ClientId = value; }
63+
get { return NativeAdapter.ClientId; }
64+
set { NativeAdapter.ClientId = value; }
6365
}
6466
}
6567
}

Connectors/Btce/BtceTrader.cs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
namespace StockSharp.Btce
22
{
3+
using System.Linq;
34
using System.Security;
45

56
using Ecng.Common;
@@ -14,16 +15,17 @@ namespace StockSharp.Btce
1415
[Icon("Btce_logo.png")]
1516
public class BtceTrader : Connector
1617
{
17-
private readonly BtceMessageAdapter _adapter;
18-
1918
/// <summary>
2019
/// Initializes a new instance of the <see cref="BtceTrader"/>.
2120
/// </summary>
2221
public BtceTrader()
2322
{
24-
_adapter = new BtceMessageAdapter(TransactionIdGenerator);
23+
Adapter.InnerAdapters.Add(new BtceMessageAdapter(TransactionIdGenerator));
24+
}
2525

26-
Adapter.InnerAdapters.Add(_adapter);
26+
private BtceMessageAdapter NativeAdapter
27+
{
28+
get { return Adapter.InnerAdapters.OfType<BtceMessageAdapter>().First(); }
2729
}
2830

2931
/// <summary>
@@ -40,17 +42,17 @@ public override bool IsSupportAtomicReRegister
4042
/// </summary>
4143
public string Key
4244
{
43-
get { return _adapter.Key.To<string>(); }
44-
set { _adapter.Key = value.To<SecureString>(); }
45+
get { return NativeAdapter.Key.To<string>(); }
46+
set { NativeAdapter.Key = value.To<SecureString>(); }
4547
}
4648

4749
/// <summary>
4850
/// Secret.
4951
/// </summary>
5052
public string Secret
5153
{
52-
get { return _adapter.Secret.To<string>(); }
53-
set { _adapter.Secret = value.To<SecureString>(); }
54+
get { return NativeAdapter.Secret.To<string>(); }
55+
set { NativeAdapter.Secret = value.To<SecureString>(); }
5456
}
5557
}
5658
}

Connectors/CQG/CQGTrader.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,7 @@ public class CQGTrader : Connector
1717
public CQGTrader()
1818
{
1919
CreateAssociatedSecurity = true;
20-
21-
var adapter = new CQGMessageAdapter(TransactionIdGenerator);
22-
23-
Adapter.InnerAdapters.Add(adapter);
20+
Adapter.InnerAdapters.Add(new CQGMessageAdapter(TransactionIdGenerator));
2421
}
2522
}
2623
}

Connectors/ETrade/ETradeTrader.cs

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
namespace StockSharp.ETrade
22
{
33
using System;
4+
using System.Linq;
45
using System.Security;
56

67
using Ecng.Common;
@@ -21,71 +22,72 @@ public class ETradeTrader : Connector
2122
/// </summary>
2223
public string ConsumerKey
2324
{
24-
get { return _adapter.ConsumerKey; }
25-
set { _adapter.ConsumerKey = value; }
25+
get { return NativeAdapter.ConsumerKey; }
26+
set { NativeAdapter.ConsumerKey = value; }
2627
}
2728

2829
/// <summary>
2930
/// Secret.
3031
/// </summary>
3132
public string ConsumerSecret
3233
{
33-
get { return _adapter.ConsumerSecret.To<string>(); }
34-
set { _adapter.ConsumerSecret = value.To<SecureString>(); }
34+
get { return NativeAdapter.ConsumerSecret.To<string>(); }
35+
set { NativeAdapter.ConsumerSecret = value.To<SecureString>(); }
3536
}
3637

3738
/// <summary>
3839
/// OAuth access token. Required to restore connection. Saved AccessToken can be valid until EST midnight.
3940
/// </summary>
4041
public OAuthToken AccessToken
4142
{
42-
get { return _adapter.AccessToken; }
43-
set { _adapter.AccessToken = value; }
43+
get { return NativeAdapter.AccessToken; }
44+
set { NativeAdapter.AccessToken = value; }
4445
}
4546

4647
/// <summary>
4748
/// Verification code, received by user in browser, after confirming program's permission to work.
4849
/// </summary>
4950
public string VerificationCode
5051
{
51-
get { return _adapter.VerificationCode; }
52-
set { _adapter.VerificationCode = value; }
52+
get { return NativeAdapter.VerificationCode; }
53+
set { NativeAdapter.VerificationCode = value; }
5354
}
5455

5556
/// <summary>
5657
/// Sandbox mode.
5758
/// </summary>
5859
public bool Sandbox
5960
{
60-
get { return _adapter.Sandbox; }
61-
set { _adapter.Sandbox = value; }
61+
get { return NativeAdapter.Sandbox; }
62+
set { NativeAdapter.Sandbox = value; }
6263
}
6364

64-
private readonly ETradeMessageAdapter _adapter;
65-
6665
/// <summary>
6766
/// Initializes a new instance of the <see cref="ETradeTrader"/>.
6867
/// </summary>
6968
public ETradeTrader()
7069
{
7170
CreateAssociatedSecurity = true;
7271

73-
_adapter = new ETradeMessageAdapter(TransactionIdGenerator);
74-
75-
Adapter.InnerAdapters.Add(_adapter);
72+
Adapter.InnerAdapters.Add(new ETradeMessageAdapter(TransactionIdGenerator));
7673

7774
ReConnectionSettings.TimeOutInterval = TimeSpan.FromMinutes(5);
7875
ReConnectionSettings.Interval = TimeSpan.FromMinutes(1);
7976
ReConnectionSettings.AttemptCount = 5;
8077
}
8178

79+
private ETradeMessageAdapter NativeAdapter
80+
{
81+
get { return Adapter.InnerAdapters.OfType<ETradeMessageAdapter>().First(); }
82+
}
83+
8284
/// <summary>
8385
/// Set own authorization mode (the default is browser uses).
8486
/// </summary>
8587
/// <param name="method">ETrade authorization method.</param>
8688
public void SetCustomAuthorizationMethod(Action<string> method)
8789
{
88-
_adapter.SetCustomAuthorizationMethod(method);
90+
NativeAdapter.SetCustomAuthorizationMethod(method);
8991
}
9092
}
9193
}

0 commit comments

Comments
 (0)