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<BsonValue> 선수데이터들 = 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<string>("총가한데미지"))).CopyToDataTable();

                double maxDamageToChamps = Convert.ToDouble(데미지리스트테이블.Rows[0]["총가한데미지"].ToString());

                foreach (DataRow item in 데미지리스트테이블.Rows)
                {
                    item["대비총데미지퍼센트"] = Convert.ToDouble(item["총가한데미지"]) / maxDamageToChamps * 100;
                }

            }

            데미지리스트테이블.TableName = DBDefine.요청데이터분류.현재데미지량선수.ToString();

            return 데미지리스트테이블;

        }

    }
}
