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());

            try
            {
                경험치레벨선수테이블.Columns.Add("팀");
                //픽리스트테이블.Columns.Add("포지션");
                경험치레벨선수테이블.Columns.Add("선수닉네임");
                경험치레벨선수테이블.Columns.Add("챔피언이름");
                경험치레벨선수테이블.Columns.Add("레벨");
                경험치레벨선수테이블.Columns.Add("경험치");
                경험치레벨선수테이블.Columns.Add("경험치대비");
                경험치레벨선수테이블.Columns.Add("레벨대비");
                경험치레벨선수테이블.Columns.Add("퀘스트여부");

                if (DataManager.getInstance().경기데이터 == null)
                {
                    return 경험치레벨선수테이블;
                }

                List<BsonValue> 선수데이터들 = DataManager.getInstance().경기데이터["participants"].AsBsonArray.OrderByDescending(p => p["XP"].ToInt32()).ToList();


                double maxXP = (double)선수데이터들[0]["XP"].ToInt32();
                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["level"].ToInt32();
                    bufRow["경험치"] = item["XP"];
                    bufRow["경험치대비"] = (item["XP"].ToInt32() / maxXP) * 100;
                    //bufRow["레벨대비"] = (item["XP"].ToInt32() - 180 - (item["level"].ToInt32() * 180) / 180 + ((item["level"].ToInt32() + 1) * 180)) * 100;

                    경험치레벨선수테이블.Rows.Add(bufRow);
                }
            }
            catch(Exception ex) { } 

            return 경험치레벨선수테이블;

        }

    }
}
