예제 #1
0
 public string DongleUpdate(string base64_question, int orgId, string orgName, int farms, int flags, string startDate, string endDate, string base64key, string endSupport, string address)
 {
     try
     {
         DateTime dtStart, dtEnd, dtSupport;
         if (!DateTime.TryParse(startDate, out dtStart) || !DateTime.TryParse(endDate, out dtEnd))
         {
             throw new XmlRpcFaultException(-2, "Не верный форматы даты начала или конца.");
         }
         if (!DateTime.TryParse(endSupport, out dtSupport))
         {
             throw new XmlRpcFaultException(-3, "Не верный форматы даты окончания поддержки.");
         }
         byte[] keyCode = Convert.FromBase64String(base64key);
         _log.Info(String.Format("Request For UpdateDongle {5:d} {0:s} {1:d} {2:d} {3:s} {4:s}", orgName, farms, flags, startDate, endDate, orgId));
         GRDVendorKey key = new GRDVendorKey();
         string       ans = key.GetTRUAnswer(base64_question, orgId, orgName, farms, flags,
                                             dtStart,
                                             dtEnd,
                                             keyCode,
                                             dtSupport, address);
         key.Dispose();
         if (ans == "")
         {
             throw new XmlRpcFaultException(-1, "Сервис обновления ключей не смог создать число-ответ");
         }
         return(ans);
     }
     catch (GrdException gexc)
     {
         throw new XmlRpcFaultException((int)gexc.ErrorCode, gexc.Message);
     }
 }
예제 #2
0
        private void button1_Click(object sender, EventArgs e)
        {
            int          ret;
            GRDVendorKey key = new GRDVendorKey();

            ret = key.GetOrgID();
            try
            {
                /*ret = key.SetTRUKey();
                 * if (ret != 0)
                 *  throw new Exception(ret.ToString()); ;
                 *
                 * ret = key.WriteMask(
                 *           "Мистер-Кролл",
                 *           110,
                 *           21,
                 *           DateTime.Parse("2011-01-11"),
                 *           DateTime.Parse("2012-07-11"));
                 * throw new Exception(ret.ToString());*/
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message);
            }

            key.Dispose();
        }
예제 #3
0
        private void miTRUHostDongle_Click(object sender, EventArgs e)
        {
            GRDVendorKey key = new GRDVendorKey();
            int          p   = key.SetTRUKey();

            p = key.WriteTRUHostMask();
            key.Dispose();
        }
예제 #4
0
        static void Main(string[] args)
        {
            log4net.Config.XmlConfigurator.Configure();
            _logger = LogManager.GetLogger("RabDongleFirmuper");
            int errCode = 0;

            try {
                if (args.Length == 0 || args[0] == "-h")
                {
                    _logger.Debug("print help");
                    printHelp();
                    Environment.Exit(0);
                }
                _logger.Debug("----------  START ----------");
                _grd = new GRDVendorKey();
                if (args[0] == "-s")
                {
                    _grd.WriteTRUHostMask();
                }
                else if (args[0] == "-c")
                {
                    if (args.Length > 1 && args[1] == "-u" && !String.IsNullOrEmpty(args[2]))
                    {
                        _url = args[2];
                    }

                    _grd.SetTRUKey();
                    dongleUpdate();
                    Console.WriteLine("Success");
                }
            } catch (GrdException exc) {
                _logger.Error(exc);
                Console.WriteLine("Grd Error: " + exc.Message);
                errCode = 1;
            } catch (Exception exc) {
                _logger.Fatal(exc);
                if (exc.InnerException != null)
                {
                    exc = exc.InnerException;
                }
                Console.WriteLine("Error: " + exc.Message);
                errCode = 2;
            } finally {
                if (_grd != null)
                {
                    _grd.Dispose();
                }
                _logger.Debug("----------  END ----------");
                Environment.Exit(errCode);
            }
        }
예제 #5
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();
        }