private BackgroundWorker getExtenderWorker(Extender extender, string user, string pass) { var bw = new BackgroundWorker(); bw.DoWork += (s, e) => { var device = getDevice(extender.IP); device.DoReboot = extender.Restart; device.IsLoading = true; device.IsNetworkAccessible = extender.IsNetworkAccessible(); //if (device.IsNetworkAccessible) { var state = extender.GetState(); device.IsHttpAccessible = state.Accessible; device.IsAuthenticated = state.Authenticated; if (device.IsHttpAccessible == true) { if (!state.Authenticated) { var result = extender.Authenticate(user, pass); if (result == null) { device.IsAuthenticated = true; state = extender.GetState(); } } if (device.IsAuthenticated == true) { device.IsActive = state.IPConnStatus == Extender.DeviceState.ConnStatusEnum.Success; var speedFormat = "{0:N0}KBps | {1}"; device.RxSpeed = string.Format(speedFormat, state.AverageReceive / 1024, state.RxRate); device.TxSpeed = string.Format(speedFormat, state.AverageTransmit / 1024, state.TxRate); device.UpTime = state.ConnTime; device.Users.AddRange(state.Users.Select(u => new DeviceModel.UserInfo(u)), true); device.Throughputs.AddRange(extender.Throughputs, true); fillUsers(); autoExtenderReboot(device); this.Dispatcher.BeginInvoke(new Action(device.Users.ResetBindings), DispatcherPriority.Normal); } } } //RefreshButtons(); device.IsLoading = false; }; bw.RunWorkerCompleted += (s, e) => { OnPropertyChanged("Devices"); }; return(bw); }
static void Main(string[] args) { /* * var router = new Router("192.168.1.1"); * if (router.Authenticate("admin","marco")==null) * { * var state = router.GetState(); * if (state.Accessible && state.Authenticated) * { * router.RestartModem(); * } * } */ var ext = new Extender("192.168.1.93"); if (ext.Authenticate("marco", "marco") == null) { var state = ext.GetState(); if (state.Accessible && state.Authenticated) { ext.Restart(); } } }