public GKTurnBasedParticipant(Dictionary <string, object> dict)
    {
        if (dict == null)
        {
            return;
        }

        if (dict.ContainsKey("playerId"))
        {
            playerId = dict["playerId"].ToString();
        }

        if (dict.ContainsKey("status"))
        {
            status = (GKTurnBasedParticipantStatus)int.Parse(dict["status"].ToString());
        }

        if (dict.ContainsKey("matchOutcome"))
        {
            matchOutcome = (GKTurnBasedMatchOutcome)int.Parse(dict["matchOutcome"].ToString());
        }

        // grab and convert the date
        if (dict.ContainsKey("lastTurnDate"))
        {
            var timeSinceEpoch = double.Parse(dict["lastTurnDate"].ToString());
            var intermediate   = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
            lastTurnDate = intermediate.AddSeconds(timeSinceEpoch);
        }
    }
Exemple #2
0
        public static ParticipantStatus ToParticipantStatus(this GKTurnBasedParticipantStatus status)
        {
            switch (status)
            {
            case GKTurnBasedParticipantStatus.Active:
                return(ParticipantStatus.Joined);

            case GKTurnBasedParticipantStatus.Declined:
                return(ParticipantStatus.Declined);

            case GKTurnBasedParticipantStatus.Done:
                return(ParticipantStatus.Done);

            case GKTurnBasedParticipantStatus.Invited:
                return(ParticipantStatus.Invited);

            case GKTurnBasedParticipantStatus.Matching:
                return(ParticipantStatus.Matching);

            case GKTurnBasedParticipantStatus.Unknown:
            default:
                return(ParticipantStatus.Unknown);
            }
        }