コード例 #1
0
ファイル: API.cs プロジェクト: LiulinaKate/GineAPI
        //********************************************************************************************

        /// <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
        }
コード例 #2
0
ファイル: API.cs プロジェクト: LiulinaKate/GineAPI
 /// <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);
         }
     }
 }
コード例 #3
0
        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);
        }