public async Task SetTimeRange(long fromNum, long toNum) { var script = $@" TradingVueObj.setRange({fromNum},{toNum}); "; await XWV.ExJs <object>(script); }
public void Dispose() { if (IsDisposed) { return; } XWV.Dispose(); IsDisposed = true; }
async Task LoadPage() { var path = System.IO.Path.Combine( AppDomain.CurrentDomain.BaseDirectory, UnpackedToPath + "/dist/index.html" ); await XWV.LoadUrl(path); await XWV.AttachBridge(); }
public async Task <(DateTime StartTime, DateTime EndTime)> GetTimeRange() { var script = $@" return TradingVueObj.getRange(); "; var arr = await XWV.ExJs <double[]>(script); var startDT = TimeExtensions.FromUniversalDateTime(arr[0]); var endDT = TimeExtensions.FromUniversalDateTime(arr[1]); return(startDT, endDT); }
async Task LoadPageIfNotLoaded() { var isLoadedScript = @" if(window['TradingViewContext']) return true; return false; "; var loaded = await XWV.ExJs <bool>(isLoadedScript); if (loaded) { return; } await LoadPage(); }
public async Task RefreshAsync(ViewRefreshType viewRefreshType = ViewRefreshType.NotReloadIfCached) { await OnRefreshing(this, viewRefreshType); var ctx = XWV.ThreadSync.Invoke(() => TypedContext); string ctxJson = null; var chartJson = JsonConvert.SerializeObject(ctx.Chart); var titleJson = JsonConvert.SerializeObject(ctx.Title); var colors = JsonConvert.SerializeObject(ctx.Colors); if (viewRefreshType == ViewRefreshType.NotReloadIfCached) { ctxJson = JsonConvert.SerializeObject(ctx); if (ctxJson == _previousRefreshJson) { return; } } var script = $@" TradingVueObj.titleTxt = {titleJson} ; TradingViewContext.chart = {chartJson} ; TradingViewContext.colors = {colors} ; "; await XWV.WaitInitialization(); if (viewRefreshType == ViewRefreshType.ReloadAllPage) { await LoadPage(); } else { await LoadPageIfNotLoaded(); } await XWV.ExJs <object>(script); _previousRefreshJson = ctxJson; await OnRefreshed(this, viewRefreshType); }