/// <summary> /// Parse a JSON formatted string into a message object /// </summary> /// <param name="msgJson"></param> /// <returns></returns> public static Message Parse(string msgJson) { Message message = null; try { List<string> participantIDs = new List<string>(); List<string> participantNames = new List<string>(); List<Dictionary<string, string>> attachments = new List<Dictionary<string, string>>(); JObject jObj = JObject.Parse(msgJson); string senderName = jObj.GetValue(JSON_KEY_SENDER_NAME).ToString(), senderID = jObj.GetValue(JSON_KEY_SENDER_ID).ToString(), body = jObj.GetValue(JSON_KEY_BODY).ToString(), threadID = jObj.GetValue(JSON_KEY_THREAD_ID).ToString(), threadName = jObj.GetValue(JSON_KEY_THREAD_NAME).ToString(), location = jObj.GetValue(JSON_KEY_LOCATION).ToString(), messageID = jObj.GetValue(JSON_KEY_MESSAGE_ID).ToString(), timestamp = jObj.GetValue(JSON_KEY_TIMESTAMP).ToString(); JArray jArrayParticipantID = (JArray)jObj.GetValue(JSON_KEY_PARTICIPANT_IDS); foreach(string id in jArrayParticipantID) { participantIDs.Add(id); } JArray jArrayParticipantName = (JArray)jObj.GetValue(JSON_KEY_PARTICIPANT_NAMES); foreach (string name in jArrayParticipantID) { participantNames.Add(name); } JArray jArrayAttachments = (JArray)jObj.GetValue(JSON_KEY_ATTACHMENT); attachments = Attachment.Parse(jArrayAttachments.ToString()); message = new Message(senderName, senderID,participantNames,participantIDs,body, threadID,threadName, location, messageID, attachments, long.Parse(timestamp)); } catch (Exception ex) { throw new FacebookChatApiException(ex.Message); } return message; }
internal MessageReceivedEventArgs(Message message) { Message = message; }