Пример #1
0
        void PostSyncMessage()
        {
            Action post = () =>
            {
                var    netEngin = new NetEngin(Program.NetworkSettings);
                string tmpFile  = Path.GetTempFileName();
                var    ms       = new MemoryStream();
                var    writer   = new RawDataWriter(ms, Encoding.UTF8);
                writer.Write(m_clInfo.ClientID);
                writer.Write(m_srvLastMsgID);
                writer.Write(m_clientLastMsgID);
                byte[] msgData = ms.ToArray();

                try
                {
                    netEngin.Download(tmpFile, Urls.ConnectionReqURL);
                    var  seq   = DialogEngin.ReadConnectionsReq(tmpFile);
                    uint msgID = 0;

                    if (seq.Any())
                    {
                        msgID = seq.Max(m => m.ID);
                    }

                    var msg = new Message(msgID + 1, 0, Message_t.Sync, msgData);
                    DialogEngin.AppendConnectionsReq(tmpFile, new Message[] { msg });
                    netEngin.Upload(Urls.ConnectionReqURL, tmpFile);
                }
                catch (Exception ex)
                {
                    Dbg.Log("PostSyncMessage: " + ex.Message);
                }
                finally
                {
                    File.Delete(tmpFile);
                }
            };


            var task = new Task(post, TaskCreationOptions.LongRunning);

            task.Start();
        }