public void CleanCurrentRequestsCallback(object sender, PSBGCompletedEventArgs e) { if (this.requestsView.InvokeRequired) { CmdCompleteCallback d = new CmdCompleteCallback(CleanCurrentRequestsCallback); this.Invoke(d, new object[] { sender, e }); } else { if (e.failed) { MessageBox.Show("Falha ao limpar requests: " + e.failmsg); } else { MessageBox.Show("Requests limpos!"); } } }
public void ReceiveMBOXCompleted(object sender, PSBGCompletedEventArgs e) { if (this.contentManager.InvokeRequired) { CmdCompleteCallback d = new CmdCompleteCallback(ReceiveMBOXCompleted); this.Invoke(d, new object[] { sender, e }); } else { if (!e.failed) { mailboxList.Text = ""; mailboxList.Items.Clear(); mboxs = ExchangeUtils.ProcessMBOXOutput(e.OutData); for (int i = 0; i < mboxs.Count(); i++) { mailboxList.Items.Add(i + ": " + mboxs[i].Alias); } contentManager.TabPages.Add(backupConfig); contentManager.TabPages.Add(currentRequests); //MessageBox.Show("Conectado e lista de caixas recebida!"); connectButton.Enabled = true; connected = true; requestUpdate.Enabled = true; connectButton.Text = "Conectado, clique aqui para desconectar."; } else { connected = false; requestUpdate.Enabled = false; contentManager.TabPages.Remove(backupConfig); contentManager.TabPages.Remove(currentRequests); connectButton.Text = "Conectar e Baixar Lista de Usuários"; serverIPtextBox.Enabled = true; serverUserTextBox.Enabled = true; serverPassTextBox.Enabled = true; saveServerConfig.Enabled = true; MessageBox.Show("Não foi possível conectar: \r\n" + e.failmsg); } } }
public void ProcessRequestsOutput(object sender, PSBGCompletedEventArgs e) { if (this.requestsView.InvokeRequired) { CmdCompleteCallback d = new CmdCompleteCallback(ProcessRequestsOutput); this.Invoke(d, new object[] { sender, e }); } else { if (!e.failed) { //dataGridView1 List <ExchangeRequest> requests = new List <ExchangeRequest>(); ExchangeRequest req = new ExchangeRequest(); RequestOutput outd = e.OutData; for (int i = 0, len = outd.ResponseTitles.Count(); i < len; i++) { String title = outd.ResponseTitles[i].ToLower(); String value = outd.ResponseValues[i]; switch (title) { case "name": req.Name = value; break; case "status": req.Status = value; break; case "filepath": req.Filepath = value; break; case "sourcealias": req.SourceAlias = value; break; case "sourcemailboxidentity": req.SourceMailboxIdentity = value; break; case "contentfilter": req.ContentFilter = value; break; case "overallduration": req.OverallDuration = value; break; case "totalqueuedduration": req.TotalQueuedDuration = value; break; case "totalinprogressduration": req.TotalInProgressDuration = value; break; case "percentcomplete": req.PercentComplete = value; break; case "objectstate": requests.Add(req); req = new ExchangeRequest(); break; } } requestsView.ColumnCount = 7; requestsView.Columns[0].Name = "Name"; requestsView.Columns[1].Name = "Status"; requestsView.Columns[2].Name = "SourceAlias"; requestsView.Columns[3].Name = "SourceMailboxIdentity"; requestsView.Columns[4].Name = "TotalInProgressDuration"; requestsView.Columns[5].Name = "PercentComplete"; requestsView.Columns[6].Name = "FilePath"; int c = 0; foreach (ExchangeRequest reqo in requests) { if (requestsView.Rows.Count > c) { requestsView.Rows[c].Cells[0].Value = reqo.Name; requestsView.Rows[c].Cells[1].Value = reqo.Status; requestsView.Rows[c].Cells[2].Value = reqo.SourceAlias; requestsView.Rows[c].Cells[3].Value = reqo.SourceMailboxIdentity; requestsView.Rows[c].Cells[4].Value = reqo.TotalInProgressDuration; requestsView.Rows[c].Cells[5].Value = reqo.PercentComplete; requestsView.Rows[c].Cells[6].Value = reqo.Filepath; } else { requestsView.Rows.Add(new string[] { reqo.Name, reqo.Status, reqo.SourceAlias, reqo.SourceMailboxIdentity, reqo.TotalInProgressDuration, reqo.PercentComplete, reqo.Filepath }); } switch (reqo.Status.ToLower()) { case "completed": requestsView.Rows[c].DefaultCellStyle.BackColor = Color.Green; break; case "failed": requestsView.Rows[c].DefaultCellStyle.BackColor = Color.Red; break; case "inprogress": requestsView.Rows[c].DefaultCellStyle.BackColor = Color.Cyan; break; default: requestsView.Rows[c].DefaultCellStyle.BackColor = Color.Yellow; break; } c++; } if (requestsView.Rows.Count > requests.Count) { for (int i = requests.Count; i < requestsView.Rows.Count; i++) { requestsView.Rows.RemoveAt(requestsView.Rows.Count - 1); } requestsView.Refresh(); } requestUpdate.Start(); } } }