public async Task AddGuide(string topic, string uri, [Remainder] string remarks) { await Context.Message.DeleteAsync(); try { var input = string.Join(" ", topic, uri, remarks); if (!Guide.TryParse(input, out var guide)) { await ReplyAsync($"Sorry {Context.Message.Author.Username}, that guide is in an incorrect format"); } else if (_contribService.Exists(guide)) { await ReplyAsync($"Sorry {Context.Message.Author.Username}, this guide already exist"); var result = new GuideResult { Topic = guide.Topic, Guides = new[] { _contribService.FindByNaturalKey(guide) as Guide } }; await ReplyAsync(result); } else { await _contribService.AddContrib(guide, Context.Message.Author); await ReplyAsync($"Ok {Context.Message.Author.Username}, the guide has been added"); } } catch (Exception ex) { var userMessage = $"Sorry {Context.Message.Author.Username}, I was unable to add that guide"; await HandleErrorAsync(userMessage, ex); } }
public async Task GetGuides([Remainder] string topic) { await Context.Message.DeleteAsync(); try { var guides = _contribService.FindGuides(topic); if (!guides.Any()) { await ReplyAsync($"Sorry {Context.Message.Author.Username}, I could not find any guides for {topic}"); } else { var result = new GuideResult { Topic = topic, Guides = guides }; await ReplyAsync(result); } } catch (Exception ex) { var userMessage = $"Sorry {Context.Message.Author.Username}, I could not find any guides for {topic}"; await HandleErrorAsync(userMessage, ex); } }
private void timer_Tip_Tick(object sender, EventArgs e) { try { DataTable dt = btc.SystemStdDevs; if (dt.Rows.Count > 0) { string strExpect = dt.Rows[dt.Rows.Count - 1]["Expect"].ToString(); Int64 MinExpect = Int64.Parse(strExpect) - 180; string sql = string.Format("Expect>={0}", MinExpect); DataView dv_stddev = new DataView(dt); dv_stddev.RowFilter = sql; if (this.chart_ForSystemStdDev.Series.Count < dt.Columns.Count - 1) { this.chart_ForSystemStdDev.Series.Clear(); for (int i = 1; i < dt.Columns.Count; i++) { string strName = dt.Columns[i].ColumnName; Series sr = new Series(strName); sr.ChartType = SeriesChartType.Line; if (strName == "StdDev" || strName == "StdMa20" || strName == "StdMa5") { sr.BorderWidth = 3; } //sr.IsValueShownAsLabel = true; this.chart_ForSystemStdDev.Series.Add(sr); } this.chart_ForSystemStdDev.GetToolTipText += new EventHandler <ToolTipEventArgs>(chart_ForSystemStdDev_GetToolTipText); } for (int i = 1; i < dt.Columns.Count; i++) { this.chart_ForSystemStdDev.Series[i - 1].Points.DataBindXY(dv_stddev, dt.Columns[0].ColumnName, dv_stddev, dt.Columns[i].ColumnName); } //this.chart_ForSystemStdDev.DataSource = dv_stddev; //this.chart_ForSystemStdDev.Series[0].Points.DataBindXY(dv_stddev, "Expect", dv_stddev, "StdDev"); //this.chart_ForSystemStdDev.Series[1].Points.DataBindXY(dv_stddev, "Expect", dv_stddev, "StdMa20"); //this.chart_ForSystemStdDev.Series[2].Points.DataBindXY(dv_stddev, "Expect", dv_stddev, "StdMa5"); this.chart_ForSystemStdDev.ChartAreas[0].AxisY.Maximum = 0.6; this.chart_ForSystemStdDev.ChartAreas[0].AxisY.Minimum = 0.1; this.chart_ForSystemStdDev.Show(); this.dg_forStdDev.DataSource = dv_stddev; this.dg_forStdDev.Tag = dt; this.dg_forStdDev.Refresh(); } lock (es.MoneyIncreamLine) { this.toolStripStatusLabel1.Text = string.Format("第{2}次,{0}/{1}", es.CurrIndex.ToString(), es.ExpectCnt, btc.testIndex); this.toolStripStatusLabel2.Text = string.Format("{0}% 最大值:[{1}%] 最小值:[{2}%] ", es.GainedRate.ToString(), es.MaxRate, es.MinRate); DataView moneyLines = new DataView(es.MoneyIncreamLine); if (this.chart1.Series.Count == 0) { Series ss = new Series(); ss.ChartType = SeriesChartType.Line; this.chart1.Series.Add(ss); } this.chart1.Series[0].Points.DataBindXY(moneyLines, "id", moneyLines, "val"); } lock (es.ExchangeDetail) { DataView vExchangeDetail = new DataView(es.ExchangeDetail); this.dataGridView_ExchangeDetail.DataSource = vExchangeDetail; this.dataGridView_ExchangeDetail.Refresh(); if (SCList.Count > 0) { if (SCList[0].PlanStrag.StagSetting.BaseType.traceType == TraceType.WaveTrace) { ProbWaveSelectStragClass pss = SCList[0].PlanStrag as ProbWaveSelectStragClass; if (pss.BaseWaves().Tables.Count == 0) { return; } GuideResult gs = pss.BaseWaves().Tables[0] as GuideResult; GuideResultSet gss = pss.GuideWaves(); Int32 rcnt = gs.Rows.Count; if (!checkBox_UseBuffRsult.Checked)//如果不用本地数据 { if (rcnt > 0 && (rcnt % 100) < 20 && rcnt > lastSaveCnt + 50) { //保存一次数据 retData = gs; lastSaveCnt = rcnt; new Thread(SaveWaveTable).Start(); } } DataView dvWv = new DataView(gs); //this.chart_ForProb.ChartAreas[0].AxisY.MaximumAutoSize = false; this.chart_ForProb.ChartAreas[0].AxisY.Maximum = gs.High; this.chart_ForProb.ChartAreas[0].AxisY.Minimum = gs.Low; this.chart_ForProb.Series[0].Points.DataBindXY(dvWv, "Id", dvWv, "val"); if (this.chart_ForProb.Series.Count < gss.Tables.Count + 1) { for (int i = this.chart_ForProb.Series.Count; i <= gss.Tables.Count; i++) { Series si = new Series(string.Format("指标{0}", i)); si.ChartType = SeriesChartType.Line; this.chart_ForProb.Series.Add(si); } } for (int i = 0; i < gss.Tables.Count; i++) { DataView dv = new DataView(gss.Tables[i]); this.chart_ForProb.Series[1 + i].Points.DataBindXY(dv, "Id", dv, "val"); } this.dataGridView_ProbData.DataSource = dvWv; } } } } catch (Exception ce) { } }