public async Task <ActionResult> PostScreenRequest_ADX(string code, [FromBody] dynamic requestBody, string type = "day", int start = 0, int end = 0) { JsonElement rootElement = requestBody; string name = rootElement.GetProperty("name").GetString(); this.screenBLL = ScreenFactory.GetScreenFunction(name, this.s3_bucket_name, this.local_temp_folder); Dictionary <string, object> options = new Dictionary <string, object>(); JsonElement el; if (rootElement.TryGetProperty("OFFSET", out el)) { options.Add("OFFSET", el.GetDouble()); } if (rootElement.TryGetProperty("DIRECTION", out el)) { options.Add("DIRECTION", el.GetString()); } List <ScreenResultEntity> matchedResult = new List <ScreenResultEntity>(); try { matchedResult = await this.screenBLL.DoScreen(code.ToUpper(), type, start, end, options); } catch (Exception ex) { Console.WriteLine($"error occurs {code} {type} {start} {end} \n {rootElement.GetRawText()} \n {ex.ToString()}"); } return(Ok(matchedResult)); }
public static IScreenInterface GetScreenFunction(string name, string s3_bucket_name, string localFolder) { IScreenInterface screenObject = null; switch (name) { case "Screen_MACD_William": screenObject = new Screen_MACD_William(s3_bucket_name, localFolder); break; case "Screen_ADX": screenObject = new Screen_ADX(s3_bucket_name, localFolder); break; } return(screenObject); }