-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathForm1.cs
118 lines (100 loc) · 3.81 KB
/
Form1.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
using System.Diagnostics;
using Task = System.Threading.Tasks.Task;
namespace gmail_imap
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private async void Extract_From(object sender, EventArgs e)
{
string host_setting = host.Text;
if (string.IsNullOrEmpty(host_setting))
{
MessageBox.Show("Please enter a host", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
int port_setting = int.Parse(port.Text);
if (port_setting == 0)
{
MessageBox.Show("Please enter a port", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
var account_settings = accounts.Text.Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
if (account_settings.Length == 0)
{
MessageBox.Show("Please enter accounts", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
Task? allTasks = null;
try
{
extract_from.Enabled = false;
var tasks = account_settings.Select(account => new Extractor(host_setting, port_setting, account).Extract_Froms()).ToList();
allTasks = Task.WhenAll(tasks);
await allTasks;
MessageBox.Show("Extract completed", "Done", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception)
{
AggregateException exception = allTasks.Exception;
foreach (var error in exception.InnerExceptions)
{
Debug.WriteLine(error);
}
}
finally
{
extract_from.Enabled = true;
}
}
private void port_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = !char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar);
}
private async void button1_Click(object sender, EventArgs e)
{
string host_setting = host.Text;
if (string.IsNullOrEmpty(host_setting))
{
MessageBox.Show("Please enter a host", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
int port_setting = int.Parse(port.Text);
if (port_setting == 0)
{
MessageBox.Show("Please enter a port", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
var account_settings = accounts.Text.Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
if (account_settings.Length == 0)
{
MessageBox.Show("Please enter accounts", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
Task? allTasks = null;
try
{
extract_bounce.Enabled = false;
var tasks = account_settings.Select(account => new Extractor(host_setting, port_setting, account).Extract_Bounce_Emails()).ToList();
allTasks = Task.WhenAll(tasks);
await allTasks;
MessageBox.Show("Extract bounce completed", "Done", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
AggregateException exception = allTasks.Exception;
foreach (var error in exception.InnerExceptions)
{
Debug.WriteLine(error);
}
}
finally
{
extract_bounce.Enabled = true;
}
}
}
}