public static IgniteActivity GetActivity(IgniteEventType type)
        {
            IgniteActivity activity = null;

            switch (type)
            {
            case IgniteEventType.leaderBoard:
                //activity = new IgniteLeaderBoard();
                break;

            case IgniteEventType.mission:
                activity = new IgniteMission();
                break;

            case IgniteEventType.quest:
                //activity = new IgniteQuest();
                break;

            case IgniteEventType.offer:
                //activity = new IgniteOffer();
                break;

            default:
                break;
            }

            return(activity);
        }
    public void Create( System.Collections.Generic.Dictionary<string,object> eventDict )
    {
        Debug.Log( "IgniteEvent:Create");

        if( eventDict.ContainsKey( "id" ) ) {
            this.Id = Convert.ToString( eventDict["id"] );
        }
        if( eventDict.ContainsKey( "startTime" ) ) {
            var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
            long t = Convert.ToInt64 (eventDict["startTime"]);
            this.StartTime = epoch.AddSeconds(t);
        }
        if( eventDict.ContainsKey( "authorized" ) ) {
            this.Authorized = Convert.ToBoolean( eventDict["authorized"] );
        }
        if( eventDict.ContainsKey( "eventId" ) ) {
            this.EventId = Convert.ToString( eventDict["eventId"] );
        }
        if( eventDict.ContainsKey( "state" ) ) {
            this.State = Convert.ToString( eventDict["state"] );
        }
        if( eventDict.ContainsKey( "score" ) ) {
            this.Score = (float)Convert.ToDouble( eventDict["score"] );
        }
        if( eventDict.ContainsKey( "type" ) ) {
            this.Type = (IgniteEventType) Enum.Parse( typeof(IgniteEventType) , Convert.ToString( eventDict["type"] ) );
        }
        if( eventDict.ContainsKey( "endTime" ) ) {
            var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
            long t = Convert.ToInt64 (eventDict["endTime"]);
            this.EndTime = epoch.AddSeconds(t);
        }
        if( eventDict.ContainsKey( "metadata" ) ) {
            System.Collections.Generic.Dictionary<string,object> eventMetadataDict = eventDict["metadata"] as System.Collections.Generic.Dictionary<string,object>;
            EventMetadata eventMetadata = new EventMetadata();
            if( eventMetadataDict.ContainsKey( "imageUrl" ) ) {
                eventMetadata.imageUrl = Convert.ToString( eventMetadataDict["imageUrl"] );
            }
            if( eventMetadataDict.ContainsKey( "name" ) ) {
                eventMetadata.Name = Convert.ToString( eventMetadataDict["name"] );
            }
            if( eventMetadataDict.ContainsKey( "gamedata" ) ) {
                eventMetadata.GameData = Convert.ToString( eventMetadataDict["gamedata"] );
            }
            this.Metadata = eventMetadata;
        }

        switch( this.Type ) {
            case IgniteEventType.leaderBoard:
            FuelSDKGroovePlanetIntegration.Instance.GetLeaderBoard( this.Id );
                activity = new IgniteLeaderBoard();
                break;
            case IgniteEventType.mission:
            FuelSDKGroovePlanetIntegration.Instance.GetMission( this.Id );
                activity = new IgniteMission();
                break;
            case IgniteEventType.quest:
            FuelSDKGroovePlanetIntegration.Instance.GetQuest( this.Id );
                activity = new IgniteQuest();
                break;
            default:
                break;
        }
    }