//******************************************************************************************** /// <summary> /// 1.Gets answer in JSON string /// 2.Converts it to <see cref="VkEvent"/> /// 3.Sends event to <see cref="HandleIncomingMessages(VkEvent)"/> /// </summary> /// <param name="answer"></param> private void DealWithAnswer(string answer) { //** VkEvent e = JsonMituteeDeserializator.ConvertToEvent(answer); // TO REFACTORING //** HandleIncomingMessages(e); // Check event for incoming messages }
/// <summary> /// Checks event for incoming messages and if they are there : /// Notifies bots via <see cref="_tower"/> /// </summary> /// <param name="e"></param> private void HandleIncomingMessages(VkEvent e) { if (e.HasIncommingMsg()) { foreach (var msg in e.IncommingMessages) { _tower.ChimeIncomingMessage(msg); } } }
public static VkEvent ConvertToEvent(string json) { VkEvent e = new VkEvent(); string ts = ""; List <List <string> > up = new List <List <string> >(); bool isTsSettuped = false; bool isUpdatesSettuped = false; try { #region Loop through string for (int i = 0; i < json.Length; i++) { #region find ts value if (!isTsSettuped && json[i] == 't' && json[++i] == 's') { while (json[i] != ':') { i++; } i++; for (; json[i] != ','; i++) { ts += json[i]; } e.ts = ts; isTsSettuped = true; } #endregion if (isTsSettuped && !isUpdatesSettuped && json.Substring(i).Contains("updates")) { while (json[i++] != '[') { ; } // getsubarr: while (json[i++] != '[') { ; // start point } i--; string subarr = String.Empty; while (json[i++] != ']') // find end { subarr += json[i]; } List <string> singleUpdate = getJSarray(subarr); if (singleUpdate.Count != 0) { if (singleUpdate[0] == "4" && (Convert.ToInt32(singleUpdate[2]) & 2) == 0) { e.IncommingMessages.Add(new Message(singleUpdate[3], singleUpdate[6])); } } up.Add(singleUpdate); if (json[++i] == ',') { goto getsubarr; } isUpdatesSettuped = true; e.Updates = up; // } } #endregion } catch (Exception ex) { Console.WriteLine(ex.Message); } return(e); }