Merge pull request #4 from swagfin/hotfix/delete-exception-patch

hotfix: ParseRule fix not assinging Rule ID
This commit is contained in:
Wainaina George (Swagfin) 2023-03-10 01:34:15 +03:00 committed by GitHub
commit 61ad629985
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 12 deletions

View File

@ -13,8 +13,6 @@ namespace PortProxyGUI.Data
public int ConnectPort { get; set; } public int ConnectPort { get; set; }
public string Comment { get; set; } public string Comment { get; set; }
public string Group { get; set; } public string Group { get; set; }
public string PingStatus { get; set; } = "Not checked";
public bool Valid => ListenPort > 0 && ConnectPort > 0; public bool Valid => ListenPort > 0 && ConnectPort > 0;
private string _realListenPort; private string _realListenPort;

View File

@ -46,12 +46,12 @@ namespace PortProxyGUI
var rule = new Data.Rule var rule = new Data.Rule
{ {
Id = item.Tag?.ToString(),
Type = subItems[1].Text.Trim(), Type = subItems[1].Text.Trim(),
ListenOn = subItems[2].Text.Trim(), ListenOn = subItems[2].Text.Trim(),
ListenPort = listenPort, ListenPort = listenPort,
ConnectTo = subItems[4].Text.Trim(), ConnectTo = subItems[4].Text.Trim(),
ConnectPort = connectPort, ConnectPort = connectPort,
PingStatus = subItems[6].Text.Trim(),
Comment = subItems[7].Text.Trim(), Comment = subItems[7].Text.Trim(),
Group = item.Group?.Header.Trim(), Group = item.Group?.Header.Trim(),
}; };
@ -101,8 +101,9 @@ namespace PortProxyGUI
private void DeleteSelectedProxies() private void DeleteSelectedProxies()
{ {
var items = listViewProxies.SelectedItems.OfType<ListViewItem>(); var items = listViewProxies.SelectedItems.OfType<ListViewItem>();
if (items == null) return;
DisableSelectedProxies(); DisableSelectedProxies();
Program.SqliteDbScope.RemoveRange(items.Select(x => new Data.Rule { Id = x.Tag.ToString() })); Program.SqliteDbScope.RemoveRange(items.Select(x => new Data.Rule { Id = x.Tag?.ToString() }));
foreach (var item in items) listViewProxies.Items.Remove(item); foreach (var item in items) listViewProxies.Items.Remove(item);
} }
@ -148,7 +149,7 @@ namespace PortProxyGUI
} }
} }
public void UpdateListViewItem(ListViewItem item, Data.Rule rule, int imageIndex) public void UpdateListViewItem(ListViewItem item, Data.Rule rule, int imageIndex, string pingStatus = "Not checked")
{ {
item.ImageIndex = imageIndex; item.ImageIndex = imageIndex;
item.Tag = rule.Id; item.Tag = rule.Id;
@ -160,11 +161,11 @@ namespace PortProxyGUI
new ListViewSubItem(item, rule.ListenPort.ToString()) { Tag = "Number" }, new ListViewSubItem(item, rule.ListenPort.ToString()) { Tag = "Number" },
new ListViewSubItem(item, rule.ConnectTo), new ListViewSubItem(item, rule.ConnectTo),
new ListViewSubItem(item, rule.ConnectPort.ToString ()) { Tag = "Number" }, new ListViewSubItem(item, rule.ConnectPort.ToString ()) { Tag = "Number" },
new ListViewSubItem(item, rule.PingStatus ?? string.Empty) new ListViewSubItem(item, pingStatus ?? string.Empty)
{ {
Tag ="Connect To Ping Status", Tag ="Connect To Ping Status",
ForeColor = rule.PingStatus.Equals("Success") ? Color.Green ForeColor = pingStatus.Equals("Success") ? Color.Green
: rule.PingStatus.Equals("Pending") ? Color.DarkGray : pingStatus.Equals("Pending") ? Color.DarkGray
: Color.MediumVioletRed : Color.MediumVioletRed
}, },
new ListViewSubItem(item, rule.Comment ?? string.Empty) new ListViewSubItem(item, rule.Comment ?? string.Empty)
@ -358,16 +359,14 @@ namespace PortProxyGUI
if (!string.IsNullOrEmpty(alreadyChkdHost.Key)) if (!string.IsNullOrEmpty(alreadyChkdHost.Key))
{ {
//Skip Checking Status since already checked //Skip Checking Status since already checked
rule.PingStatus = alreadyChkdHost.Value.ToString(); UpdateListViewItem(item, rule, item.ImageIndex, alreadyChkdHost.Value.ToString());
UpdateListViewItem(item, rule, item.ImageIndex);
} }
else else
{ {
//If not yet checked //If not yet checked
PingCheckerUtil.GetPingResult(rule.ConnectTo, 2, out IPStatus ipStatus, out _, out _); PingCheckerUtil.GetPingResult(rule.ConnectTo, 2, out IPStatus ipStatus, out _, out _);
hostStatus.Add(new KeyValuePair<string, IPStatus>(rule.ConnectTo, ipStatus)); hostStatus.Add(new KeyValuePair<string, IPStatus>(rule.ConnectTo, ipStatus));
rule.PingStatus = ipStatus.ToString(); UpdateListViewItem(item, rule, item.ImageIndex, ipStatus.ToString());
UpdateListViewItem(item, rule, item.ImageIndex);
} }
} }
catch { } catch { }