public void OnSuccess(YotaParser parser) { _context.DisableReconnectOnError(); if (_context._deviceId.Equals("") || !parser.DeviceIdExists(_context._deviceId)) { _context._deviceId = parser.GetProductInfos()[0].deviceId; _context._yota.SetDeviceId(_context._deviceId); Settings.Default.DeviceID = _context._deviceId; } int rateNum = parser.GetCurrentRateNum(_context._deviceId); String days = parser.GetDays(_context._deviceId); String name = parser.GetShortRateName(_context._deviceId, rateNum); if (days == "0") { _context._animMgr.Stop("!"); _context._notifyIcon.Text = "Не осталось оплаченных дней"; } else { _context._animMgr.Stop(name); _context._notifyIcon.Text = parser.GetRateName(_context._deviceId, rateNum); } _context.UpdateContextMenu(parser); var fullName = parser.GetRateName(_context._deviceId, rateNum); if (_context._yota.GetLastRateNumber() == -1) Log.RateChecked(fullName); else Log.RateChanged(fullName); }
public void UpdateContextMenu(YotaParser parser, bool needSelection = true) { _contextMenuStrip.Items.Clear(); if (parser != null && parser.IsParsed() && parser.DeviceIdExists(_deviceId)) { // баланс var balance = parser.GetBalance(); if (balance != "") { _contextMenuStrip.Items.Add("Баланс: " + balance); _contextMenuStrip.Items[_contextMenuStrip.Items.Count - 1].Tag = KeyBalance; _contextMenuStrip.Items.Add("-"); } // тарифы int count = parser.GetRateCount(_deviceId); int current = parser.GetCurrentRateNum(_deviceId); for (int i = 0; i < count; ++i) { String code = parser.GetRateCode(_deviceId, i); if (Array.IndexOf(_excludeRatesCodes, code) == -1) { String name = parser.GetRateName(_deviceId, i); _contextMenuStrip.Items.Add(name); _contextMenuStrip.Items[_contextMenuStrip.Items.Count - 1].Tag = i; if (i == current && needSelection) (_contextMenuStrip.Items[_contextMenuStrip.Items.Count - 1] as ToolStripMenuItem).Checked = true; } } _contextMenuStrip.Items.Add("-"); } var yet = new ToolStripMenuItem("Другое"); yet.Tag = KeyOther; yet.DropDownItemClicked += OnItemClick; _contextMenuStrip.Items.Add(yet); var exit = new ToolStripMenuItem("Выход"); exit.Tag = KeyExit; _contextMenuStrip.Items.Add(exit); if (_scheduler != null && _scheduler.NeedChangeOnEvent(Scheduler.KeyOnExitApp)) { exit.DropDownItemClicked += OnItemClick; var directExit = new ToolStripMenuItem("Выход без изменения скорости"); directExit.Tag = KeyDirectExit; exit.DropDownItems.Add(directExit); } // другое if (parser != null && _scheduler != null) { var schedule = new ToolStripMenuItem("Планировщик"); schedule.Tag = KeySchedule; yet.DropDownItems.Add(schedule); } if (_needLog) { var log = new ToolStripMenuItem("Журнал"); log.Tag = KeyLog; yet.DropDownItems.Add(log); } var settings = new ToolStripMenuItem("Настройки"); settings.Tag = KeySettings; yet.DropDownItems.Add(settings); if (parser != null) { var device = new ToolStripMenuItem("Устройство"); device.Tag = KeyDevice; device.DropDownItemClicked += OnDeviceChange; yet.DropDownItems.Add(device); String[] deviceIds = parser.GetProductInfos().Select(pi => pi.deviceId).ToArray(); foreach (var deviceId in deviceIds) { var nextDeviceItem = new ToolStripMenuItem(parser.GetDeviceName(deviceId)); nextDeviceItem.Tag = deviceId; if (deviceId == _deviceId) nextDeviceItem.Checked = true; device.DropDownItems.Add(nextDeviceItem); } } var about = new ToolStripMenuItem("О программе"); about.Tag = KeyAbout; yet.DropDownItems.Add(about); }