Beispiel #1
0
        // чтение входящего сообщения
        public JsonPack GetMessage()
        {
            byte[] data = new byte[256]; // буфер для получаемых данных
                        StringBuilder builder = new StringBuilder();
            int bytes = 0;

            do
            {
                bytes = Stream.Read(data, 0, data.Length);
                builder.Append(Encoding.Unicode.GetString(data, 0, bytes));
                if (builder.ToString() == "")
                {
                    continue;
                }
            }while (Stream.DataAvailable);

            JsonPack jsPack = new JsonPack();

            if (jsPack.GetJson(builder.ToString()))
            {
                return(jsPack);
            }
            else
            {
                return(null);
            }
        }
Beispiel #2
0
        public JsonPack ReceiveOneMessage()
        {
            try
            {
                byte[]        data    = new byte[64]; // буфер для получаемых данных
                StringBuilder builder = new StringBuilder();
                int           bytes   = 0;
                do
                {
                    bytes = stream.Read(data, 0, data.Length);
                    builder.Append(Encoding.Unicode.GetString(data, 0, bytes));
                }while (stream.DataAvailable);

                JsonPack json = new JsonPack();
                if (json.GetJson(builder.ToString()))
                {
                    return(json);
                }
                else
                {
                    return(null);
                }
            }
            catch
            {
                Debug.WriteLine("Подключение прервано!"); //соединение было прервано
                Disconnect();

                return(null);
            }
        }
Beispiel #3
0
        public ResultCode TryLogin()
        {
            JsonPack jsPack = GetMessage();

            //  if (jsPack == null)
            return(ResultCode.Error);

            /*    switch (jsPack.header.metod)
             *  {
             *      case Metods.Regisration:
             *          List<User> users = db.Users.ToList();
             *          User user = users.Find(x => x.Login == jsPack.header.login);
             *          if (user!= null)
             *              return StateUser.LoginExist;
             *          else
             *          {
             *              user = new User()
             *              {
             *                  Login = jsPack.header.login,
             *                  Password=jsPack.header.password
             *                  //Name=
             *              }
             *
             *              return StateUser.Login;
             *          }
             *      case Metods.Login:
             *          users = db.Users.ToList();
             *          user = users.Find(x => x.Login == jsPack.header.login);
             *          //if (user!=null)
             *          return 0;
             *      default:
             *          return 0;
             *  }*/
        }
Beispiel #4
0
        public void AddConnection(ClientObject clientObject)
        {
            LicenceKey key;
            JsonPack   jsOut;
            JsonPack   jsIn = clientObject.GetMessage();

            switch (jsIn.metod)
            {
            case "JSDRegister":
                JSDRegister reg = (JSDRegister)jsIn.data;
                key = db.LicenceKeys.Where(x => x.Key == reg.key).FirstOrDefault();
                if (key != null && (key.UnicId == null || key.UnicId == ""))
                {
                    key.UnicId = reg.Id_1 + reg.Id_2;
                }
                db.LicenceKeys.Attach(key);
                db.Entry(db.LicenceKeys.Find(key.LicenceKeyId)).State = EntityState.Modified;
                db.SaveChanges();
                clientObject.user = db.Users.Where(x => x.UserId == key.UserId).FirstOrDefault();
                jsOut             = new JsonPack();
                jsOut.data        = new JSDRegisterS()
                {
                    result = true
                };
                clients.Add(clientObject);
                clientObject.SendMessage(jsOut);
                break;

            case "JSDLogin":
                JSDLogin login = (JSDLogin)jsIn.data;
                key   = db.LicenceKeys.Where(x => x.Key == login.LicenseKey && x.UnicId == login.UniqPC).FirstOrDefault();
                jsOut = new JsonPack()
                {
                    data = new JSDLoginS()
                    {
                        result = false
                    }
                };
                if (key != null)
                {
                    clientObject.user = db.Users.Where(x => x.UserId == key.UserId).FirstOrDefault();
                    ((JSDLoginS)(jsOut.data)).result = true;
                }
                ;
                clients.Add(clientObject);
                clientObject.SendMessage(jsOut);
                break;

            default:
                break;
            }

            /*
             * if (clientObject.TryLogin() == ResultCode.Login)
             * {
             *  Thread clientThread = new Thread(new ThreadStart(clientObject.Process));
             *  clientThread.Start();
             * }*/
        }
Beispiel #5
0
        /// <summary>
        /// To download the task log with a string format
        /// </summary>
        /// <param name="idleParam">
        /// not use parameters, set it to null
        /// </param>
        public override void Request(object idleParam)
        {
            string jsonStr = JsonPack <DownloadLog> .SerializeObject(this);

            string result =
                AgentSetting.CallerFactory.CreateCaller()
                .PostCommand(AgentSetting.AddressUrl + AgentSetting.CommandLogDownload, jsonStr);

            this.SetTheCallResult(result);
        }
        /// <summary>
        /// To lookup the task list with a xml string
        /// </summary>
        /// <param name="idleParam">
        /// No use parameter, set it to null
        /// </param>
        public override void Request(object idleParam)
        {
            string jsonStr = JsonPack <BusinessInfo> .SerializeObject(this.BusinessCredentials);

            string result =
                AgentSetting.CallerFactory.CreateCaller()
                .PostCommand(AgentSetting.AddressUrl + AgentSetting.CommandTaskGet, jsonStr);

            this.SetTheCallResult(result);
        }
Beispiel #7
0
    private void OnApplicationQuit()
    {
        for (var i = 0; i < m_Slot.Length; i++)
        {
            JsonPack data = new JsonPack();
            data.item = m_Slot[i].m_info;
            data.none = m_Slot[i].m_none;

            m_Json.Add(data);
        }

        string json = JsonHelper.ToJson(m_Json.ToArray());

        JsonIOStream.Json_Save(json);
    }
Beispiel #8
0
        /// <summary>
        /// получение сообщений
        /// </summary>
        void ReceiveMessage()
        {
            while (true)
            {
                try
                {
                    byte[] data = new byte[64]; // буфер для получаемых данных
                                        StringBuilder builder = new StringBuilder();
                    int bytes = 0;
                    do
                    {
                        bytes = stream.Read(data, 0, data.Length);
                        builder.Append(Encoding.Unicode.GetString(data, 0, bytes));
                    }while (stream.DataAvailable);

                    if (builder.ToString() == "")
                    {
                        countEmpty++;
                        if (countEmpty >= 50)
                        {
                            continue;
                        }
                    }
                    else
                    {
                        countEmpty = 0;
                    }

                    JsonPack pack = new JsonPack();
                    if (pack.GetJson(builder.ToString()))
                    {
                        ProcessQuery(pack);
                    }
                    else
                    {
                        ProcessQuery(null);
                    }
                }
                catch
                {
                    Debug.WriteLine("Подключение прервано!"); //соединение было прервано
                    Disconnect();
                    //            Connect(host, port, idClient, login, password);
                }
            }
        }
Beispiel #9
0
        public bool SendToSupport(string subject, string body, Image screen)
        {
            JsonPack jp = new JsonPack();

            ImageConverter converter = new ImageConverter();
            var            bytes     = (byte[])converter.ConvertTo(screen, typeof(byte[]));
            List <byte[]>  list      = new List <byte[]>();

            list.Add(bytes);

            string str = jp.ToString();

            //var ms = new MemoryStream(jp.GetJson(str).images[0]);
            var   ms    = new MemoryStream();
            Image image = Image.FromStream(ms);

            img_Delete = image;
            //throw new NotImplementedException();
            return(false);
        }
Beispiel #10
0
        public ResultCode Register(string serialKey)
        {
            if (!client.Connected)
            {
                return(ResultCode.NoConnection);
            }
            else
            {
                JsonPack json = new JsonPack();
                json.data = new JSDRegister()
                {
                    key          = serialKey,
                    Id_1         = BaseBoard.GetSerialNumber(),
                    Id_2         = Bios.GetSerialNumber(),
                    computerName = OperatingSystemScan.GetNamePC()
                };
                SendMessage(json.ToString());

                JsonPack receive = ReceiveOneMessage();

                if (!receive.Accept || receive.data.GetType().Name != "JSDRegisterS")
                {
                    // if (receive.Errors == "NotValidKey")
                    //     return ResultCode.NotValidKey;
                    // else
                    return(ResultCode.Error);
                }
                else
                if (!((JSDRegisterS)receive.data).result)
                {
                    return(ResultCode.Error);
                }
                else
                {
                    // запускаем новый поток для получения данных
                    receiveThread = new Thread(new ThreadStart(ReceiveMessage));
                    receiveThread.Start(); //старт потока
                    return(ResultCode.OK);
                }
            }
        }
Beispiel #11
0
        private static void prog1()
        {
            //var handle = GetConsoleWindow();

            // Hide
            //ShowWindow(handle, SW_HIDE);


            // сохраним на диск
            var(orders, store) = Data.autoGeneratedData(30, 60, 5, false, true);
            var data = JsonPack.packGeneratedData(orders, store);
            // прочитали Json
            dynamic dd = JObject.Parse(File.ReadAllText(data));

            int[][] str = ((JArray)dd.store).Select(jv => jv.Select(j => (int)j).ToArray()).ToArray();
            // возможно вставка нумерации строк
            int[][] or = ((JArray)dd.order).Select(jv => jv.Select(j => (int)j).ToArray()).ToArray();
            int     x  = 1;

            or = or.Select(el => { var el1 = el.ToList(); el1.Add(x++); return(el1.ToArray()); }).ToArray();
            //int[][] or = JArray.Parse(File.ReadAllText(x)).Select(jv => jv.Select(j => (int)j).ToArray()).ToArray();
            var newData = File.ReadAllText(JsonPack.packGeneratedData(or, str));

            Console.WriteLine(newData);
            prog3(newData);

            // проводим расчет
            var raspil = new RaspilOperator(or, str);
            var x1     = raspil.Algoritm2();
            var xx     = raspil.ordersRemain;

            string x11 = JsonConvert.SerializeObject(x1);

            //string xx11 = JsonConvert.SerializeObject(xx);

            File.WriteAllText(Path.Combine("temp", Directory.GetCurrentDirectory(), "result.json"), x11);
            //File.WriteAllText(Path.Combine("temp", Directory.GetCurrentDirectory(), "ostatok.json"), xx11);
        }
Beispiel #12
0
        public bool Login()
        {
            if (!client.Connected)
            {
                return(false);
            }
            else
            {
                string   LicenceKey = GetLicenseKey();
                JsonPack pack       = new JsonPack();
                JSDLogin data       = new JSDLogin()
                {
                    LicenseKey = LicenceKey,
                    UniqPC     = pack.GetUniqPC()
                };
                pack.data  = data;
                pack.metod = data.GetType().Name;

                SendMessage(pack.ToString());

                JsonPack receive = ReceiveOneMessage();

                if (!receive.Accept)
                {
                    return(false);
                }
                else
                {
                    // запускаем новый поток для получения данных
                    receiveThread = new Thread(new ThreadStart(ReceiveMessage));
                    receiveThread.Start(); //старт потока
                    return(true);
                }
            }

            //return false;
        }
Beispiel #13
0
        private void ProcessQuery(JsonPack query)
        {
            if (query == null)
            {
                return;
            }
            switch (query.metod)
            {
            case "m1":

                break;

            case "m2":

                break;

            case "m3":

                break;

            default:
                break;
            }
        }
Beispiel #14
0
        public void SendMessage(JsonPack jsOut)
        {
            byte[] data = Encoding.Unicode.GetBytes(jsOut.ToString());

            Stream.Write(data, 0, data.Length);
        }