Ejemplo n.º 1
0
        public static Activity ProcessActivity(string json)
        {
            try
            {
                var activity = JsonConvert.DeserializeObject <Activity>(json);
                switch (activity.type)
                {
                case "Follow":
                    return(JsonConvert.DeserializeObject <ActivityFollow>(json));

                case "Undo":
                    var a = JsonConvert.DeserializeObject <ActivityUndo>(json);
                    if (a.apObject.type == "Follow")
                    {
                        return(JsonConvert.DeserializeObject <ActivityUndoFollow>(json));
                    }
                    break;

                case "Accept":
                    var accept = JsonConvert.DeserializeObject <ActivityAccept>(json);
                    //var acceptType = JsonConvert.DeserializeObject<Activity>(accept.apObject);
                    switch ((accept.apObject as dynamic).type.ToString())
                    {
                    case "Follow":
                        var acceptFollow = new ActivityAcceptFollow()
                        {
                            type     = accept.type,
                            id       = accept.id,
                            actor    = accept.actor,
                            context  = accept.context,
                            apObject = new ActivityFollow()
                            {
                                id       = (accept.apObject as dynamic).id?.ToString(),
                                type     = (accept.apObject as dynamic).type?.ToString(),
                                actor    = (accept.apObject as dynamic).actor?.ToString(),
                                context  = (accept.apObject as dynamic).context?.ToString(),
                                apObject = (accept.apObject as dynamic).@object?.ToString()
                            }
                        };
                        return(acceptFollow);

                        break;
                    }
                    break;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            return(null);
        }