초기 커밋.
This commit is contained in:
@@ -0,0 +1,170 @@
|
||||
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 디비데이터를데이터테이블로만듬()
|
||||
{
|
||||
List<DataTable> rtnValue = new List<DataTable>();
|
||||
|
||||
DataTable 밴리스트테이블 = new DataTable(DBDefine.요청데이터분류.밴데이터.ToString());
|
||||
rtnValue.Add(밴리스트테이블);
|
||||
|
||||
//추가 시작
|
||||
// 1) 순번 컬럼을 int로 (정렬/비교 안정화)
|
||||
밴리스트테이블.Columns.Add("순번", typeof(int));
|
||||
밴리스트테이블.Columns.Add("챔피언ID");
|
||||
밴리스트테이블.Columns.Add("챔피언이름");
|
||||
밴리스트테이블.Columns.Add("팀");
|
||||
|
||||
// 여기부터 새로 넣기
|
||||
var dm = DataManager.getInstance();
|
||||
|
||||
if (dm.밴픽데이터 == null || dm.밴픽데이터.IsBsonNull || !dm.밴픽데이터.IsBsonDocument)
|
||||
{
|
||||
밴리스트테이블.TableName = DBDefine.요청데이터분류.밴데이터.ToString();
|
||||
return 밴리스트테이블;
|
||||
}
|
||||
|
||||
var doc = dm.밴픽데이터.AsBsonDocument;
|
||||
|
||||
if (!doc.TryGetValue("bannedChampions", out var banned) || banned == null || banned.IsBsonNull || !banned.IsBsonArray)
|
||||
{
|
||||
밴리스트테이블.TableName = DBDefine.요청데이터분류.밴데이터.ToString();
|
||||
return 밴리스트테이블;
|
||||
}
|
||||
|
||||
//List<BsonValue> 밴데이터 = banned.AsBsonArray.ToList();
|
||||
|
||||
|
||||
List<BsonValue> 밴데이터 = dm.밴픽데이터["bannedChampions"].AsBsonArray.ToList();
|
||||
var turns = 밴데이터.Select(x => x["pickTurn"].ToInt32()).ToList();
|
||||
|
||||
bool isGlobalTurnFormat = turns.Any(t => t >= 13); // 1~6 + 13~16
|
||||
bool isDirectSlotFormat = turns.Distinct().Count() == turns.Count // 1~10 같은 직접 슬롯
|
||||
&& turns.All(t => t >= 1 && t <= 10);
|
||||
|
||||
foreach (BsonValue item in 밴데이터)
|
||||
{
|
||||
DataRow bufRow = 밴리스트테이블.NewRow();
|
||||
|
||||
int pickTurn = item["pickTurn"].ToInt32();
|
||||
int teamId = item["teamID"].ToInt32();
|
||||
int slot = 0;
|
||||
|
||||
/*
|
||||
if (isDirectSlotFormat)
|
||||
{
|
||||
slot = pickTurn;
|
||||
}
|
||||
else if (isGlobalTurnFormat)
|
||||
{
|
||||
if (pickTurn >= 1 && pickTurn <= 6) slot = pickTurn;
|
||||
else if (pickTurn >= 13 && pickTurn <= 16) slot = pickTurn - 6; // 13~16 => 7~10
|
||||
else slot = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
int key = pickTurn + teamId;
|
||||
if (!dm.밴픽순서테이블.TryGetValue(key, out slot))
|
||||
slot = 0;
|
||||
}
|
||||
*/
|
||||
|
||||
//if (slot == 0) slot = 밴리스트테이블.Rows.Count + 1;
|
||||
//bufRow["순번"] = slot;
|
||||
bufRow["순번"] = pickTurn;
|
||||
int selectedChamp = item["championID"].ToInt32();
|
||||
bufRow["챔피언ID"] = selectedChamp;
|
||||
|
||||
bufRow["팀"] = item["teamID"].ToInt32();
|
||||
|
||||
if (selectedChamp > 0)
|
||||
bufRow["챔피언이름"] = dm.mChampionTable[selectedChamp].champNameKOR;
|
||||
else if (selectedChamp == -1)
|
||||
bufRow["챔피언이름"] = "선택없음";
|
||||
|
||||
밴리스트테이블.Rows.Add(bufRow);
|
||||
}
|
||||
// 여기까지 새로 넣기
|
||||
|
||||
|
||||
// 5) 정렬도 int 기준으로
|
||||
if (밴리스트테이블.Rows.Count > 0)
|
||||
{
|
||||
밴리스트테이블 = 밴리스트테이블.AsEnumerable()
|
||||
.OrderBy(r => r.Field<int>("순번"))
|
||||
.CopyToDataTable();
|
||||
}
|
||||
|
||||
////추가 끝
|
||||
|
||||
|
||||
//밴리스트테이블.Columns.Add("순번");
|
||||
//밴리스트테이블.Columns.Add("챔피언ID");
|
||||
//밴리스트테이블.Columns.Add("챔피언이름");
|
||||
|
||||
//if (DataManager.getInstance().밴픽데이터 == null)
|
||||
//{
|
||||
// return 밴리스트테이블;
|
||||
//}
|
||||
|
||||
//List<BsonValue> 밴데이터 = DataManager.getInstance().밴픽데이터["bannedChampions"].AsBsonArray.ToList();
|
||||
|
||||
|
||||
//foreach (BsonValue item in 밴데이터)
|
||||
//{
|
||||
// DataRow bufRow = 밴리스트테이블.NewRow();
|
||||
|
||||
// //Console.WriteLine(item["pickTurn"].ToInt32() + item["teamID"].ToInt32());
|
||||
|
||||
// if (DataManager.getInstance().isNewBanPick)
|
||||
// {
|
||||
// bufRow["순번"] = item["pickTurn"].ToInt32();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// bufRow["순번"] = DataManager.getInstance().밴픽순서테이블[item["pickTurn"].ToInt32() + item["teamID"].ToInt32()];
|
||||
// }
|
||||
|
||||
|
||||
// int selectedChamp = item["championID"].ToInt32();
|
||||
// if (selectedChamp > 0 )
|
||||
// {
|
||||
// bufRow["챔피언이름"] = DataManager.getInstance().mChampionTable[selectedChamp];
|
||||
// }
|
||||
// if (selectedChamp == -1)
|
||||
// {
|
||||
// bufRow["챔피언이름"] = "선택없음";
|
||||
// }
|
||||
// bufRow["챔피언ID"] = selectedChamp;
|
||||
|
||||
|
||||
|
||||
|
||||
// 밴리스트테이블.Rows.Add(bufRow);
|
||||
//}
|
||||
|
||||
|
||||
//if (밴리스트테이블.Rows.Count > 0)
|
||||
//{
|
||||
// 밴리스트테이블 = 밴리스트테이블.AsEnumerable().OrderBy(r => Convert.ToInt32(r.Field<string>("순번"))).CopyToDataTable();
|
||||
//}
|
||||
|
||||
|
||||
|
||||
밴리스트테이블.TableName = DBDefine.요청데이터분류.밴데이터.ToString();
|
||||
return 밴리스트테이블;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user