Closed BunkerCoder closed 4 years ago
@mathpaquette - Thanks for the thumb's up! Nervously awaiting your feedback... Take all the time you need.
lol I was about to review it :)
thats not bad but unfortunately not in a mergeable state Ill say. Let me explain:
changes Im proposing:
private Level1DynamicFields _level1DynamicFields;
public Level1DynamicFields DynamicFields
{
get
{
if (_level1DynamicFields == null)
throw new Exception("Must use Level1MessageDynamicHandler");
return _level1DynamicFields;
}
}
@BunkerCoder Ill help you creating the handler part. Join the chat is you need to talk more.
@BunkerCoder added more skeleton code now. you just need to feel the blanks!! https://github.com/mathpaquette/IQFeed.CSharpApiClient/commit/9e5fe278fa89ac71ab9c0de4f36c3dbc1ab15d45
@mathpaquette - great stuff. I'll dig in.
@mathpaquette - great stuff. I'll dig in.
ill give you more examples soon.
@BunkerCoder I managed the feature. Ill share code later today. I'll request your help to unit test this.
@mathpaquette - awesome! Looked like you were almost there, so figured you might finish it off. Happy to help test.
@BunkerCoder cool, I really need your help on the testing part. Let me sharing with you later.
@mathpaquette - thanks again for the great advice. Here is v2. A few notes: Strong-typed code was too tedious/error-prone to write, so created a generator. Set it up as an example instead of a separate project because it needs a -define (for ApiClient and Examples) that toggles FieldsetDescriptionAttribute between private and public. Still haven't created tests, but existing tests pass. New StreamingLevel1DynamicExample example looks like it is pulling all feed fields correctly (still needs testing). Removed "Symbol" from dynamic fields; it doesn't need to be included as any requests, and is always included as first data field, so it's not really dynamic. Would have caused need for special-case code. "Type" field throws an error - probably because it's already in the data. Commented it out (with the error) from dynamic fields. Changed SelectUpdateFieldName to private; using it with the non-dynamic L1Client will break the client. I don't think it is useful to call it "mid-session". Just create a separate client. Didn't include the handler for S,CURRENT UPDATE FIELDNAMES that I did in the prior version; it's not needed, and could create a race condition. Appreciate your time.