private void FillRowFromInfo(DataRow row, UciInfoResponse info) { row["Move"] = Lan.LanToMoveWithSan(info.Fen, info.PV.Or(new List <string>()).FirstOrDefault()); row["Depth"] = info.Depth.Or(0); row["SelDepth"] = info.SelDepth.Or(0); var score = info.Score.Or(new UciScore(0, UciScoreType.Cp, UciScoreBoundType.Exact)); row["Score"] = score; row["ScoreInt"] = score.ToInteger() * GetSideToMoveScoreMultiplier(); row["Time"] = TimeSpan.FromSeconds(info.Time.Or(0) / 1000); row["Nodes"] = info.Nodes.Or(0); row["NPS"] = info.Nps.Or(0); row["MultiPV"] = info.MultiPV.Or(0); row["TBHits"] = info.TBHits.Or(0); row["PV"] = Lan.PVToString(info.Fen, info.PV.FirstOrDefault()); }