protected virtual void PrepareData() { if (this.PropertyData is WebPanelOptionData.ISPmanager_DomainOption) { BatchDomainTools.WebPanelOptionData.ISPmanager_DomainOption options = this.PropertyData as WebPanelOptionData.ISPmanager_DomainOption; if (options.IPAddrs == null || options.IPAddrs.Length == 0) { try { options.IPAddrs = new string[] { System.Net.Dns.GetHostAddresses(WebPanelAccount.AccountManager.SelectAccount.PanelAddr.DnsSafeHost)[0].ToString() }; } catch (Exception ex) { this.ReportProgress(0, string.Format("[MCOLOR:Red]Не удалось получить основной IP адрес для веб-панели ISPmanager:{0}[/MCOLOR]", ex.Message)); this.CancelAsync(); return; } } } if (this is ActionEditTask || this is ActionRemoveTask) { IWebPanelBasicActions.IGet GetInstance = WebPanelAccount.AccountManager.SelectAccount.WebPanelAPI; WebPanelItems.WebPanelItemCollection TempCollection = new BatchDomainTools.WebPanelItems.WebPanelItemCollection(this.Quenu.CollectionType); ActionResultBase result = GetInstance.Get(TempCollection); if (!result) { this.ReportProgress(0, String.Format("[MCOLOR:Red]Не удалось получить список для сопоставления объектов: {0}[/MCOLOR]", result.ErrorMessage)); this.CancelAsync(); return; } if (TempCollection.Count == 0) { this.ReportProgress(0, "[MCOLOR:Red]В хостинг панели нет указанных объектов .[/MCOLOR]"); this.CancelAsync(); return; } for (int iNeddle = 0; iNeddle < this.Quenu.Count; iNeddle++) { for (int iHaystack = 0; iHaystack < TempCollection.Count; iHaystack++) { if (this.Quenu[iNeddle].Equals(TempCollection[iHaystack])) { this.Quenu[iNeddle] = TempCollection[iHaystack]; TempCollection.RemoveAt(iHaystack); break; } } } } }
/// <summary> /// Метода получает список с объектами панели /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void UpdateList_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; IWebPanelBasicActions.IGet getObject = WebPanelAccount.AccountManager.SelectAccount.WebPanelAPI; WebPanelItems.WebPanelItemCollection collection = WebPanelAccount.AccountManager.SelectAccount.PanelItems[(Type)e.Argument]; worker.ReportProgress(99, "Пытаемся получить список."); collection.Clear(); WebPanelActionResult.ActionResultBase result = getObject.Get(collection); if (!result) { worker.ReportProgress(0, String.Format("Во время получения списка произошла ошибка:[MCOLOR:Red]{0}[/MCOLOR].", result.ErrorMessage)); e.Result = false; } else { e.Result = true; } }