Exemplo n.º 1
0
        private static void dongleUpdate()
        {
            VenReqSender reqSend = new VenReqSender();

            reqSend.Url    = Helper.UriNormalize(_url);
            reqSend.UserID = 0;
            reqSend.Key    = new byte[GRD_Base.KEY_CODE_LENGTH];

            byte[] defPass = Encoding.UTF8.GetBytes(DEF_PWD);
            Array.Copy(defPass, reqSend.Key, defPass.Length);

            string       q  = _grd.GetTRUQuestion();
            ResponceItem ri = reqSend.ExecuteMethod(MethodName.ClientGetUpdate,
                                                    MPN.question, q);

            if (String.IsNullOrEmpty(ri.Value as String))
            {
                throw new Exception("Получен пустой ответ от сервера");
            }
            _grd.SetTRUAnswer(ri.Value as String);
        }
Exemplo n.º 2
0
        private void btAddKey_Click(object sender, System.EventArgs e)
        {
            GRDVendorKey key = null;

            try
            {
                int retCode = 0;
                if (lvClients.SelectedItems.Count == 0)
                {
                    throw new Exception("Не выбран клиент");
                }

                sClient client = lvClients.SelectedItems[0].Tag as sClient;
                key = new GRDVendorKey();
                if (key.ID == 0)
                {
                    throw new Exception("Произошла ошибка подключения к ключу.\nПодробности в логах");
                }
#if !DEBUG
                foreach (sDongle d in client.Dongles)
                {
                    if (d.Id == key.ID.ToString())
                    {
                        throw new Exception("Данный клиент уже имеет этот ключ");
                    }
                }
#endif
                this.Enabled = false;
                AddDongleForm dlg = new AddDongleForm(client, key.ID, true);
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    _reqSend.ExecuteMethod(MethodName.VendorAddDongle,
                                           MPN.dongleId, key.ID.ToString(),
                                           MPN.orgId, client.Id,
                                           MPN.model, key.Model.ToString());

                    retCode = key.SetTRUKey();
                    if (retCode != 0)
                    {
                        throw new Exception("Ощибка при инициализации ключа: " + retCode.ToString());
                    }
                    string q = "";
                    retCode = key.GetTRUQuestion(out q);
                    if (retCode != 0)
                    {
                        throw new Exception("Ощибка при генерировании числа-вопроса: " + retCode.ToString());
                    }

                    ResponceItem s = _reqSend.ExecuteMethod(MethodName.VendorUpdateDongle,
                                                            MPN.base64_question, q,
                                                            MPN.orgId, client.Id,
                                                            MPN.farms, dlg.Farms.ToString(),
                                                            MPN.flags, dlg.Flags.ToString(),
                                                            MPN.startDate, dlg.StartDate.ToString("yyyy-MM-dd"),
                                                            MPN.endDate, dlg.EndDate.ToString("yyyy-MM-dd"),
                                                            MPN.dongleId, key.ID.ToString());
                    string ans = s.Value.ToString();
                    if (ans == "")
                    {
                        throw new Exception("Пустое число-ответ");
                    }
                    key.SetTRUAnswer(ans);
                    MessageBox.Show("Прошивка Завершена");
                }
            }
            catch (Exception exc)
            {
                MessageBox.Show(
                    (exc.InnerException != null) ? exc.InnerException.Message : exc.Message,
                    "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            if (key != null)
            {
                key.Dispose();
            }
            this.Enabled = true;
            fillUsers();
        }