public async UniTask <Dictionary <string, int> > GetScoreAsync(string[] columns) { var hiScoreCheck = new YieldableNcmbQuery <NCMBObject>(_className); hiScoreCheck.WhereEqualTo(ObjectId, ObjectID); await hiScoreCheck.FindAsync(); if (hiScoreCheck.Count <= 0) { return(null); } _ncmbRecord = hiScoreCheck.Result.First(); var result = new Dictionary <string, int>(); for (var i = 0; i < columns.Length; ++i) { var column = columns[i]; var value = _ncmbRecord.ContainsKey(column) ? _ncmbRecord[column].ToString() : string.Empty; result.Add(column, int.Parse(value)); } return(result); }
/// <summary> /// オブジェクト内から、NCMBUserのポインタを取得する /// </summary> /// <returns>NCMBUser</returns> /// <param name="record">オブジェクト</param> /// <param name="field">対象のフィールド</param> protected NCMBUser GetTargetUser(NCMBObject record, string field) { NCMBUser user = null; if (record.ContainsKey(field) && record[field] != null) { user = (NCMBUser)record[field]; } return(user); }
/// <summary> /// ランキングのオブジェクトから、ユーザ名を取得する /// </summary> /// <returns>ユーザ名</returns> /// <param name="obj">ランキングのオブジェクト</param> /// <param name="fieldName">ユーザ名のフィールド(追加設定した場合)</param> public string GetRankingUserName(NCMBObject obj, string fieldName = "") { // 指定のクラスのオブジェクトでなければ、エラーとする base.CheckMatchClass(obj.ClassName, new string[] { NCMBUTRankingsDefaultSettings.RANKING_CLASS }); NCMBUser user = base.GetTargetUser(obj, NCMBUTRankingsDefaultSettings.RankingsDefaultFields.player.ToString()); if (user == null) { if (obj.ContainsKey(fieldName)) { return(obj[fieldName].ToString()); } return(""); } return(user.UserName); }