using MongoDB.Bson; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LolDataRequestLib.ResponseData { class 누적데미지선수 : IResponseData { public DataTable 디비데이터를데이터테이블로만듬() { DataTable 데미지리스트테이블 = new DataTable("누적데미지"); 데미지리스트테이블.Columns.Add("팀"); 데미지리스트테이블.Columns.Add("선수닉네임"); 데미지리스트테이블.Columns.Add("챔피언이름"); 데미지리스트테이블.Columns.Add("총가한데미지"); 데미지리스트테이블.Columns.Add("대비총데미지퍼센트"); if (DataManager.getInstance().경기데이터 == null) { return 데미지리스트테이블; } List 선수데이터들 = DataManager.getInstance().경기데이터["participants"].AsBsonArray.ToList(); for (int i = 0; i < 선수데이터들.Count(); i++) { BsonValue item = 선수데이터들[i]; DataRow bufRow = 데미지리스트테이블.NewRow(); bufRow["팀"] = (DBDefine.팀구분)item["teamID"].ToInt32(); //bufRow["포지션"] = (DBDefine.라인구분)item["participantID"].AsInt32 + 1; bufRow["선수닉네임"] = item["playerName"]; bufRow["챔피언이름"] = item["championName"]; bufRow["총가한데미지"] = item["stats"].AsBsonArray.Where(v => v["name"] == "TOTAL_DAMAGE_DEALT_TO_CHAMPIONS").ToList()[0]["value"]; 데미지리스트테이블.Rows.Add(bufRow); } if (데미지리스트테이블.Rows.Count > 0) { 데미지리스트테이블 = 데미지리스트테이블.AsEnumerable().OrderByDescending(r => Convert.ToDouble(r.Field("총가한데미지"))).CopyToDataTable(); double maxDamageToChamps = Convert.ToDouble(데미지리스트테이블.Rows[0]["총가한데미지"].ToString()); foreach (DataRow item in 데미지리스트테이블.Rows) { item["대비총데미지퍼센트"] = Convert.ToDouble(item["총가한데미지"]) / maxDamageToChamps * 100; } } 데미지리스트테이블.TableName = DBDefine.요청데이터분류.현재데미지량선수.ToString(); return 데미지리스트테이블; } } }