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(DBDefine.요청데이터분류.픽데이터.ToString()); 픽리스트테이블.Columns.Add("팀"); //픽리스트테이블.Columns.Add("포지션"); 픽리스트테이블.Columns.Add("선수닉네임"); 픽리스트테이블.Columns.Add("챔피언ID"); 픽리스트테이블.Columns.Add("챔피언이름"); 픽리스트테이블.Columns.Add("픽상태"); 픽리스트테이블.Columns.Add("선택스킨ID"); 픽리스트테이블.Columns.Add("순번", typeof(int)); if (DataManager.getInstance().밴픽데이터 == null) { return 픽리스트테이블; } List 블루픽데이터 = DataManager.getInstance().밴픽데이터["teamOne"].AsBsonArray.ToList(); foreach (BsonValue item in 블루픽데이터) { DataRow bufRow = 픽리스트테이블.NewRow(); bufRow["팀"] = DBDefine.팀구분.블루; //bufRow["포지션"] = (DBDefine.라인구분)item["participantID"].AsInt32 + 1; bufRow["선수닉네임"] = item["summonerName"]; int selectedChamp = item["championID"].ToInt32(); if (selectedChamp != 0) { bufRow["챔피언이름"] = DataManager.getInstance().mChampionTable[selectedChamp].champNameKOR; } bufRow["챔피언ID"] = selectedChamp; bufRow["픽상태"] = (DBDefine.픽상태구분)item["pickMode"].ToInt32(); bufRow["선택스킨ID"] = item["championID"]; bufRow["순번"] = item["pickTurn"].ToInt32(); 픽리스트테이블.Rows.Add(bufRow); } List 퍼플픽데이터 = DataManager.getInstance().밴픽데이터["teamTwo"].AsBsonArray.ToList(); foreach (BsonValue item in 퍼플픽데이터) { DataRow bufRow = 픽리스트테이블.NewRow(); bufRow["팀"] = DBDefine.팀구분.퍼플; //bufRow["포지션"] = (DBDefine.라인구분)item["participantID"].AsInt32 - 4; bufRow["선수닉네임"] = item["summonerName"]; int selectedChamp = item["championID"].ToInt32(); if (selectedChamp != 0) { bufRow["챔피언이름"] = DataManager.getInstance().mChampionTable[selectedChamp].champNameKOR; } bufRow["챔피언ID"] = selectedChamp; bufRow["픽상태"] = (DBDefine.픽상태구분)item["pickMode"].ToInt32(); bufRow["선택스킨ID"] = item["championID"]; bufRow["순번"] = item["pickTurn"].ToInt32(); 픽리스트테이블.Rows.Add(bufRow); } if (DataManager.getInstance().isNewBanPick) { if (픽리스트테이블.Rows.Count > 0) { 픽리스트테이블 = 픽리스트테이블.AsEnumerable() .OrderBy(r => r.Field("팀") == DBDefine.팀구분.블루.ToString() ? 0 : 1) // 블루 팀 우선 .ThenBy(r => r.Field("순번")) // 같은 팀 내에서는 순번 오름차순 .CopyToDataTable(); } } return 픽리스트테이블; } } }