private void btn_two_range_Click(object sender, EventArgs e) { ArrayList list_websites = new ArrayList(); foreach (DataGridViewRow row in dgv_website.Rows) { if (Convert.ToBoolean(row.Cells["selected"].Value) == true) { string website = row.Cells["website"].Value.ToString(); list_websites.Add(website); } } StringBuilder sb = new StringBuilder(); List <BsonDocument> list = new List <BsonDocument>(); DataTable dt = new DataTable(); dt.Columns.Add("start_time"); dt.Columns.Add("host"); dt.Columns.Add("client"); foreach (DataGridViewRow row in dgv_match.Rows) { if (Convert.ToBoolean(row.Cells["selected"].Value) == true) { DataRow row_new = dt.NewRow(); row_new["start_time"] = row.Cells["start_time"].Value.ToString(); row_new["host"] = row.Cells["host"].Value.ToString(); row_new["client"] = row.Cells["client"].Value.ToString(); dt.Rows.Add(row_new); } } for (int i = 0; i < dt.Rows.Count; i++) { for (int j = i + 1; j < dt.Rows.Count; j++) { for (int k = 1; k < 101; k++) { BsonDocument doc = Match500Analyse.get_max_from_two_match(dt.Rows[i]["start_time"].ToString(), dt.Rows[i]["host"].ToString(), dt.Rows[i]["client"].ToString(), dt.Rows[j]["start_time"].ToString(), dt.Rows[j]["host"].ToString(), dt.Rows[j]["client"].ToString(), k, list_websites); list.Add(doc); sb.Append("----------------------------------------------------------------------------------------------------------------------------------------" + Environment.NewLine); sb.Append(Match500Analyse.get_info_from_doc(doc)); this.txt_result.Text = sb.ToString(); Application.DoEvents(); } } } sb.Append("----------------------------------------------------------------------------------------------------------------------------------------" + Environment.NewLine); this.txt_result.Text = sb.ToString(); Application.DoEvents(); }
private void btn_single_match_Click(object sender, EventArgs e) { ArrayList list_websites = new ArrayList(); foreach (DataGridViewRow row in dgv_website.Rows) { if (Convert.ToBoolean(row.Cells["selected"].Value) == true) { string website = row.Cells["website"].Value.ToString(); list_websites.Add(website); } } StringBuilder sb = new StringBuilder(); List <BsonDocument> list = new List <BsonDocument>(); foreach (DataGridViewRow row in dgv_match.Rows) { if (Convert.ToBoolean(row.Cells["selected"].Value) == true) { string start_time = row.Cells["start_time"].Value.ToString(); string host = row.Cells["host"].Value.ToString(); string client = row.Cells["client"].Value.ToString(); BsonDocument doc = Match500Analyse.get_max_from_single_match(start_time, host, client, 50, list_websites); list.Add(doc); sb.Append("----------------------------------------------------------------------------------------------------------------------------------------" + Environment.NewLine); sb.Append(Match500Analyse.get_info_from_doc(doc)); this.txt_result.Text = sb.ToString(); Application.DoEvents(); } } sb.Append("----------------------------------------------------------------------------------------------------------------------------------------" + Environment.NewLine); this.txt_result.Text = sb.ToString(); Application.DoEvents(); if (cb_persent_asc.Checked) { get_single_by_persent_asc(list); } if (cb_persent_desc.Checked) { get_single_by_persent_desc(list); } if (cb_website_asc.Checked) { get_single_by_website_asc(list); } if (cb_website_desc.Checked) { get_single_by_website_desc(list); } }
public void get_two_by_website_desc(List <BsonDocument> list) { StringBuilder sb = new StringBuilder(); sb.Append("BY website DESC:" + Environment.NewLine); DataTable dt = new DataTable(); DataColumn order = new DataColumn("order"); order.DataType = Type.GetType("System.Int32"); dt.Columns.Add(order); DataColumn count = new DataColumn("count"); count.DataType = Type.GetType("System.Int32"); dt.Columns.Add(count); for (int i = 0; i < list.Count; i++) { DataRow row_new = dt.NewRow(); row_new["order"] = i; BsonArray array = list[i]["websites"].AsBsonArray; ArrayList al = new ArrayList(); foreach (BsonValue value in array) { bool is_has = false; foreach (string name in al) { if (name == value.ToString()) { is_has = true; } } if (is_has == false) { al.Add(value.ToString()); } } row_new["count"] = al.Count; dt.Rows.Add(row_new); } dt.DefaultView.Sort = "count desc"; dt = dt.DefaultView.ToTable(); foreach (DataRow row in dt.Rows) { BsonDocument doc = list[Convert.ToInt32(row["order"].ToString())]; sb.Append("----------------------------------------------------------------------------------------------------------------------------------------" + Environment.NewLine); sb.Append(Match500Analyse.get_info_from_doc(doc)); } sb.Append("----------------------------------------------------------------------------------------------------------------------------------------" + Environment.NewLine); this.txt_result.Text = sb.ToString(); Application.DoEvents(); }
public void get_three_by_persent_desc(List <BsonDocument> list) { StringBuilder sb = new StringBuilder(); sb.Append("BY PERSENT DESC:" + Environment.NewLine); DataTable dt = new DataTable(); DataColumn order = new DataColumn("order"); order.DataType = Type.GetType("System.Int32"); dt.Columns.Add(order); DataColumn persent = new DataColumn("persent"); persent.DataType = Type.GetType("System.Double"); dt.Columns.Add(persent); for (int i = 0; i < list.Count; i++) { DataRow row_new = dt.NewRow(); row_new["order"] = i; row_new["persent"] = Convert.ToDouble(list[i]["min_value"].ToString()) / Convert.ToDouble(list[i]["bid_count"].ToString()) * 100; dt.Rows.Add(row_new); } dt.DefaultView.Sort = "persent desc"; dt = dt.DefaultView.ToTable(); foreach (DataRow row in dt.Rows) { BsonDocument doc = list[Convert.ToInt32(row["order"].ToString())]; sb.Append("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" + Environment.NewLine); sb.Append(Match500Analyse.get_info_from_doc(doc)); } sb.Append("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" + Environment.NewLine); this.txt_result.Text = sb.ToString(); Application.DoEvents(); }
public static BsonDocument get_max_from_three_match(string start_time1, string host1, string client1, string start_time2, string host2, string client2, string start_time3, string host3, string client3, int max_count, ArrayList list_websites) { string sql = "select * from europe_500 where start_time='{0}' and host='{1}' and client='{2}'"; sql = string.Format(sql, start_time1, host1, client1); DataTable dt1 = SQLServerHelper.get_table(sql); sql = "select * from europe_500 where start_time='{0}' and host='{1}' and client='{2}'"; sql = string.Format(sql, start_time2, host2, client2); DataTable dt2 = SQLServerHelper.get_table(sql); sql = "select * from europe_500 where start_time='{0}' and host='{1}' and client='{2}'"; sql = string.Format(sql, start_time3, host3, client3); DataTable dt3 = SQLServerHelper.get_table(sql); double[] max = new double[27]; string[] websites = new string[27]; for (int i = 0; i < 27; i++) { max[i] = -999999; websites[i] = ""; } for (int i = 0; i < dt1.Rows.Count; i++) { bool is_in_websites = false; foreach (string website in list_websites) { if (website == dt1.Rows[i]["website"].ToString()) { is_in_websites = true; } } if (is_in_websites == false) { continue; } int row_no2 = -1; for (int j = 0; j < dt2.Rows.Count; j++) { if (dt1.Rows[i]["website"].ToString() == dt2.Rows[j]["website"].ToString()) { row_no2 = j; break; } } int row_no3 = -1; for (int j = 0; j < dt3.Rows.Count; j++) { if (dt1.Rows[i]["website"].ToString() == dt3.Rows[j]["website"].ToString()) { row_no3 = j; break; } } if (row_no2 != -1 && row_no3 != -1) { double[,] single_odd = new double[3, 3] { { Convert.ToDouble(dt1.Rows[i]["odd_win"].ToString()), Convert.ToDouble(dt1.Rows[i]["odd_draw"].ToString()), Convert.ToDouble(dt1.Rows[i]["odd_lose"].ToString()) }, { Convert.ToDouble(dt2.Rows[row_no2]["odd_win"].ToString()), Convert.ToDouble(dt2.Rows[row_no2]["odd_draw"].ToString()), Convert.ToDouble(dt2.Rows[row_no2]["odd_lose"].ToString()) }, { Convert.ToDouble(dt3.Rows[row_no3]["odd_win"].ToString()), Convert.ToDouble(dt3.Rows[row_no3]["odd_draw"].ToString()), Convert.ToDouble(dt3.Rows[row_no3]["odd_lose"].ToString()) } }; double[] odds = new double[27]; int index = 0; for (int j = 0; j < 3; j++) { for (int k = 0; k < 3; k++) { for (int l = 0; l < 3; l++) { odds[index] = single_odd[0, j] * single_odd[1, k] * single_odd[2, l]; index = index + 1; } } } for (int j = 0; j < 27; j++) { if (odds[j] > max[j]) { max[j] = odds[j]; websites[j] = dt1.Rows[i]["website"].ToString(); } } } } BsonDocument doc_max = Match500Analyse.get_min(max, max_count); BsonDocument doc = new BsonDocument(); doc.Add("doc_id", DateTime.Now.ToString("yyyyMMddHHmmss") + DateTime.Now.Millisecond.ToString()); doc.Add("start_time1", start_time1); doc.Add("host1", host1); doc.Add("client1", client1); doc.Add("start_time2", start_time2); doc.Add("host2", host2); doc.Add("client2", client2); doc.Add("start_time3", start_time3); doc.Add("host3", host3); doc.Add("client3", client3); doc.Add("type", "three-match-max"); doc.Add("bid_count", doc_max["bid_count"].ToString()); doc.Add("min_value", doc_max["min_value"].ToString()); doc.Add("max_value", doc_max["max_value"].ToString()); BsonArray array_websites = new BsonArray(); foreach (string website in websites) { array_websites.Add(website); } doc.Add("websites", array_websites); BsonArray array_orign_odds = new BsonArray(); foreach (double odd in max) { array_orign_odds.Add(odd.ToString("f2")); } doc.Add("orign_odds", array_orign_odds); BsonArray website_odds = new BsonArray(); foreach (string website in websites) { bool is_has = false; foreach (BsonDocument doc_item in website_odds) { if (doc_item["website"].ToString() == website) { is_has = true; } } if (is_has == false) { BsonDocument doc_item = new BsonDocument(); doc_item.Add("website", website); string odd_win1 = ""; string odd_draw1 = ""; string odd_lose1 = ""; string odd_win2 = ""; string odd_draw2 = ""; string odd_lose2 = ""; string odd_win3 = ""; string odd_draw3 = ""; string odd_lose3 = ""; foreach (DataRow row in dt1.Rows) { if (row["website"].ToString() == website) { odd_win1 = row["odd_win"].ToString(); odd_draw1 = row["odd_draw"].ToString(); odd_lose1 = row["odd_lose"].ToString(); } } foreach (DataRow row in dt2.Rows) { if (row["website"].ToString() == website) { odd_win2 = row["odd_win"].ToString(); odd_draw2 = row["odd_draw"].ToString(); odd_lose2 = row["odd_lose"].ToString(); } } foreach (DataRow row in dt3.Rows) { if (row["website"].ToString() == website) { odd_win3 = row["odd_win"].ToString(); odd_draw3 = row["odd_draw"].ToString(); odd_lose3 = row["odd_lose"].ToString(); } } doc_item.Add("odd_win1", odd_win1); doc_item.Add("odd_draw1", odd_draw1); doc_item.Add("odd_lose1", odd_lose1); doc_item.Add("odd_win2", odd_win2); doc_item.Add("odd_draw2", odd_draw2); doc_item.Add("odd_lose2", odd_lose2); doc_item.Add("odd_win3", odd_win3); doc_item.Add("odd_draw3", odd_draw3); doc_item.Add("odd_lose3", odd_lose3); website_odds.Add(doc_item.AsBsonDocument); } } doc.Add("website_odds", website_odds); doc.Add("order_nos", doc_max["order_nos"].AsBsonArray); doc.Add("bids", doc_max["bids"].AsBsonArray); doc.Add("odds", doc_max["odds"].AsBsonArray); return(doc); }
public static BsonDocument get_max_from_two_match(string start_time1, string host1, string client1, string start_time2, string host2, string client2, int max_count, ArrayList list_websites) { string sql = "select * from europe_500 where start_time='{0}' and host='{1}' and client='{2}'"; sql = string.Format(sql, start_time1, host1, client1); DataTable dt1 = SQLServerHelper.get_table(sql); sql = "select * from europe_500 where start_time='{0}' and host='{1}' and client='{2}'"; sql = string.Format(sql, start_time2, host2, client2); DataTable dt2 = SQLServerHelper.get_table(sql); double[] max = new double[9] { -999999, -999999, -999999, -999999, -999999, -999999, -999999, -999999, -999999 }; string[] websites = new string[9] { "", "", "", "", "", "", "", "", "" }; for (int i = 0; i < dt1.Rows.Count; i++) { bool is_in_websites = false; foreach (string website in list_websites) { if (website == dt1.Rows[i]["website"].ToString()) { is_in_websites = true; } } if (is_in_websites == false) { continue; } int row_no = -1; for (int j = 0; j < dt2.Rows.Count; j++) { if (dt1.Rows[i]["website"].ToString() == dt2.Rows[j]["website"].ToString()) { row_no = j; break; } } if (row_no != -1) { double ww = Convert.ToDouble(dt1.Rows[i]["odd_win"].ToString()) * Convert.ToDouble(dt2.Rows[row_no]["odd_win"].ToString()); double wd = Convert.ToDouble(dt1.Rows[i]["odd_win"].ToString()) * Convert.ToDouble(dt2.Rows[row_no]["odd_draw"].ToString()); double wl = Convert.ToDouble(dt1.Rows[i]["odd_win"].ToString()) * Convert.ToDouble(dt2.Rows[row_no]["odd_lose"].ToString()); double dw = Convert.ToDouble(dt1.Rows[i]["odd_draw"].ToString()) * Convert.ToDouble(dt2.Rows[row_no]["odd_win"].ToString()); double dd = Convert.ToDouble(dt1.Rows[i]["odd_draw"].ToString()) * Convert.ToDouble(dt2.Rows[row_no]["odd_draw"].ToString()); double dl = Convert.ToDouble(dt1.Rows[i]["odd_draw"].ToString()) * Convert.ToDouble(dt2.Rows[row_no]["odd_lose"].ToString()); double lw = Convert.ToDouble(dt1.Rows[i]["odd_lose"].ToString()) * Convert.ToDouble(dt2.Rows[row_no]["odd_win"].ToString()); double ld = Convert.ToDouble(dt1.Rows[i]["odd_lose"].ToString()) * Convert.ToDouble(dt2.Rows[row_no]["odd_draw"].ToString()); double ll = Convert.ToDouble(dt1.Rows[i]["odd_lose"].ToString()) * Convert.ToDouble(dt2.Rows[row_no]["odd_lose"].ToString()); if (ww > max[0]) { max[0] = ww; websites[0] = dt1.Rows[i]["website"].ToString(); } if (wd > max[1]) { max[1] = wd; websites[1] = dt1.Rows[i]["website"].ToString(); } if (wl > max[2]) { max[2] = wl; websites[2] = dt1.Rows[i]["website"].ToString(); } if (dw > max[3]) { max[3] = dw; websites[3] = dt1.Rows[i]["website"].ToString(); } if (dd > max[4]) { max[4] = dd; websites[4] = dt1.Rows[i]["website"].ToString(); } if (dl > max[5]) { max[5] = dl; websites[5] = dt1.Rows[i]["website"].ToString(); } if (lw > max[6]) { max[6] = lw; websites[6] = dt1.Rows[i]["website"].ToString(); } if (ld > max[7]) { max[7] = ld; websites[7] = dt1.Rows[i]["website"].ToString(); } if (ll > max[8]) { max[8] = ll; websites[8] = dt1.Rows[i]["website"].ToString(); } } } BsonDocument doc_max = Match500Analyse.get_min_by_wave(max, max_count); BsonDocument doc = new BsonDocument(); doc.Add("doc_id", DateTime.Now.ToString("yyyyMMddHHmmss") + DateTime.Now.Millisecond.ToString()); doc.Add("start_time1", start_time1); doc.Add("host1", host1); doc.Add("client1", client1); doc.Add("start_time2", start_time2); doc.Add("host2", host2); doc.Add("client2", client2); doc.Add("type", "two-match-max"); doc.Add("bid_count", doc_max["bid_count"].ToString()); doc.Add("min_value", doc_max["min_value"].ToString()); doc.Add("max_value", doc_max["max_value"].ToString()); BsonArray array_websites = new BsonArray(); foreach (string website in websites) { array_websites.Add(website); } doc.Add("websites", array_websites); BsonArray array_orign_odds = new BsonArray(); foreach (double odd in max) { array_orign_odds.Add(odd.ToString("f2")); } doc.Add("orign_odds", array_orign_odds); //Detail website Odds BsonArray website_odds = new BsonArray(); foreach (string website in websites) { bool is_has = false; foreach (BsonDocument doc_item in website_odds) { if (doc_item["website"].ToString() == website) { is_has = true; } } if (is_has == false) { BsonDocument doc_item = new BsonDocument(); doc_item.Add("website", website); string odd_win1 = ""; string odd_draw1 = ""; string odd_lose1 = ""; string odd_win2 = ""; string odd_draw2 = ""; string odd_lose2 = ""; foreach (DataRow row in dt1.Rows) { if (row["website"].ToString() == website) { odd_win1 = row["odd_win"].ToString(); odd_draw1 = row["odd_draw"].ToString(); odd_lose1 = row["odd_lose"].ToString(); } } foreach (DataRow row in dt2.Rows) { if (row["website"].ToString() == website) { odd_win2 = row["odd_win"].ToString(); odd_draw2 = row["odd_draw"].ToString(); odd_lose2 = row["odd_lose"].ToString(); } } doc_item.Add("odd_win1", odd_win1); doc_item.Add("odd_draw1", odd_draw1); doc_item.Add("odd_lose1", odd_lose1); doc_item.Add("odd_win2", odd_win2); doc_item.Add("odd_draw2", odd_draw2); doc_item.Add("odd_lose2", odd_lose2); website_odds.Add(doc_item.AsBsonDocument); } } doc.Add("website_odds", website_odds); doc.Add("order_nos", doc_max["order_nos"].AsBsonArray); doc.Add("bids", doc_max["bids"].AsBsonArray); doc.Add("odds", doc_max["odds"].AsBsonArray); return(doc); }
public static BsonDocument get_max_from_single_match(string start_time, string host, string client, int max_count, ArrayList list_websites) { string sql = "select * from europe_500 where start_time='{0}' and host='{1}' and client='{2}'"; sql = string.Format(sql, start_time, host, client); DataTable dt = SQLServerHelper.get_table(sql); //ArrayList list_fix_websites = new ArrayList(); double[] max = new double[3] { -999999, -999999, -99999 }; string[] websites = new string[3] { "", "", "" }; for (int i = 0; i < dt.Rows.Count; i++) { //bool is_fix_website = false; //foreach (string website in ArrayList) //{ // if (website == dt.Rows[i]["website"].ToString()) is_fix_website = true; //} //if (is_fix_website == false) continue; bool is_in_websites = false; foreach (string website in list_websites) { if (website == dt.Rows[i]["website"].ToString()) { is_in_websites = true; } } if (is_in_websites == false) { continue; } double[] input = new double[3] { Convert.ToDouble(dt.Rows[i]["odd_win"].ToString()), Convert.ToDouble(dt.Rows[i]["odd_draw"].ToString()), Convert.ToDouble(dt.Rows[i]["odd_lose"].ToString()) }; if (input[0] > max[0]) { max[0] = input[0]; websites[0] = dt.Rows[i]["website"].ToString(); } if (input[1] > max[1]) { max[1] = input[1]; websites[1] = dt.Rows[i]["website"].ToString(); } if (input[2] > max[2]) { max[2] = input[2]; websites[2] = dt.Rows[i]["website"].ToString(); } } BsonDocument doc_max = Match500Analyse.get_min_by_wave(max, max_count); BsonDocument doc = new BsonDocument(); doc.Add("doc_id", DateTime.Now.ToString("yyyyMMddHHmmss") + DateTime.Now.Millisecond.ToString()); doc.Add("start_time", start_time); doc.Add("host", host); doc.Add("client", client); doc.Add("type", "single-match-max"); doc.Add("bid_count", doc_max["bid_count"].ToString()); doc.Add("min_value", doc_max["min_value"].ToString()); doc.Add("max_value", doc_max["max_value"].ToString()); BsonArray array_websites = new BsonArray(); foreach (string website in websites) { array_websites.Add(website); } doc.Add("websites", array_websites); BsonArray array_orign_odds = new BsonArray(); foreach (double odd in max) { array_orign_odds.Add(odd.ToString("f2")); } doc.Add("orign_odds", array_orign_odds); BsonArray website_odds = new BsonArray(); foreach (string website in websites) { bool is_has = false; foreach (BsonDocument doc_item in website_odds) { if (doc_item["website"].ToString() == website) { is_has = true; } } if (is_has == false) { BsonDocument doc_item = new BsonDocument(); doc_item.Add("website", website); string odd_win = ""; string odd_draw = ""; string odd_lose = ""; foreach (DataRow row in dt.Rows) { if (row["website"].ToString() == website) { odd_win = row["odd_win"].ToString(); odd_draw = row["odd_draw"].ToString(); odd_lose = row["odd_lose"].ToString(); } } doc_item.Add("odd_win", odd_win); doc_item.Add("odd_draw", odd_draw); doc_item.Add("odd_lose", odd_lose); website_odds.Add(doc_item.AsBsonDocument); } } doc.Add("website_odds", website_odds); doc.Add("order_nos", doc_max["order_nos"].AsBsonArray); doc.Add("bids", doc_max["bids"].AsBsonArray); doc.Add("odds", doc_max["odds"].AsBsonArray); return(doc); }