Skip to content

Commit b7b201c

Browse files
committed
Separate http and https
1 parent 95c268d commit b7b201c

File tree

3 files changed

+46
-21
lines changed

3 files changed

+46
-21
lines changed

fast cf ip scanner/ViewModels/IpOptionViewModel.cs

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,11 @@ public partial class IpOptionViewModel : BaseViewModel
1515
IpOptionModel _ipOptions;
1616

1717
[ObservableProperty]
18-
ObservableCollection<PortForShow> ports;
19-
18+
ObservableCollection<PortForShow> httpPorts;
19+
20+
[ObservableProperty]
21+
ObservableCollection<PortForShow> httpsPorts;
22+
2023
[ObservableProperty]
2124
int maxPingOfIP;
2225

@@ -35,7 +38,8 @@ public partial class IpOptionViewModel : BaseViewModel
3538

3639
public IpOptionViewModel()
3740
{
38-
ports = new ObservableCollection<PortForShow>();
41+
httpPorts = new ObservableCollection<PortForShow>();
42+
httpsPorts = new ObservableCollection<PortForShow>();
3943
}
4044

4145
[ObservableProperty]
@@ -47,11 +51,16 @@ protected override void OnPropertyChanged(PropertyChangedEventArgs e)
4751
base.OnPropertyChanged(e);
4852
if (e.PropertyName == "IpOptions" && !saved)
4953
{
50-
var allPorts = Constants.HttpPorts.Concat(Constants.HttpsPorts);
54+
var allHttpPorts = Constants.HttpPorts;
55+
var allHttpsPorts = Constants.HttpsPorts;
5156
var selectedPort = IpOptions.Ports;
52-
foreach (var port in allPorts)
57+
foreach (var port in allHttpPorts)
5358
{
54-
Ports.Add(new PortForShow(port, selectedPort.Any(p => p == port)));
59+
HttpPorts.Add(new PortForShow(port, selectedPort.Any(p => p == port)));
60+
}
61+
foreach (var port in allHttpsPorts)
62+
{
63+
HttpsPorts.Add(new PortForShow(port, selectedPort.Any(p => p == port)));
5564
}
5665
MaxPingOfIP = IpOptions.MaxPingOfIP;
5766
MinimumCountOfValidIp = IpOptions.MinimumCountOfValidIp;
@@ -66,7 +75,8 @@ async void Save()
6675
{
6776
saved = true;
6877
IpOptions.Ports.Clear();
69-
IpOptions.Ports.AddRange(Ports.Where(p => p.IsChecked).Select(p => p.Port));
78+
IpOptions.Ports.AddRange(HttpPorts.Where(p => p.IsChecked).Select(p => p.Port));
79+
IpOptions.Ports.AddRange(HttpsPorts.Where(p => p.IsChecked).Select(p => p.Port));
7080
if (IpOptions.Ports.Count == 0)
7181
{
7282
IpOptions.Ports.AddRange(GetRandomPort());
@@ -129,7 +139,8 @@ async void Save()
129139

130140
if (saved)
131141
{
132-
totalTestForEachIp = CountOfRepeatTestForEachIp * (Ports.Where(p=>p.IsChecked)).Count();
142+
var countSelectedOfPorts = HttpPorts.Where(p => p.IsChecked).Count() + HttpsPorts.Where(p => p.IsChecked).Count();
143+
totalTestForEachIp = CountOfRepeatTestForEachIp * countSelectedOfPorts;
133144
var countOfIpInEachRange = CountOfIpForTest / CountOfIpRanges;
134145

135146
await App.Current.MainPage.DisplayAlert("Info", $"{CountOfIpForTest} ips in {CountOfIpRanges} ranges will be tested {totalTestForEachIp} times", "ok");
@@ -150,8 +161,5 @@ public string[] GetRandomPort(int count = 3)
150161
return randomPorts;
151162
}
152163

153-
public void UpdateVar()
154-
{
155-
totalTestForEachIp = CountOfRepeatTestForEachIp * (Ports.Where(p => p.IsChecked)).Count();
156-
}
164+
157165
}

fast cf ip scanner/Views/IpOptionsPage.xaml

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
x:DataType="viewmodel:IpOptionViewModel">
88
<ScrollView>
99
<StackLayout Padding="20">
10-
11-
<Label Text="Ports:"/>
12-
<CollectionView ItemsSource="{Binding Ports}">
10+
11+
<Label Text="Http Ports:"/>
12+
<CollectionView ItemsSource="{Binding HttpPorts}">
1313
<CollectionView.ItemsLayout>
1414
<LinearItemsLayout Orientation="Horizontal" />
1515
</CollectionView.ItemsLayout>
@@ -22,8 +22,28 @@
2222
TextColor="White"/>
2323
<CheckBox IsChecked="{Binding IsChecked}"
2424
VerticalOptions="CenterAndExpand"
25-
Color="DodgerBlue"
26-
CheckedChanged="CheckBox_CheckedChanged">
25+
Color="DodgerBlue">
26+
27+
</CheckBox>
28+
</StackLayout>
29+
</DataTemplate>
30+
</CollectionView.ItemTemplate>
31+
</CollectionView>
32+
<Label Text="Https Ports:"/>
33+
<CollectionView ItemsSource="{Binding HttpsPorts}">
34+
<CollectionView.ItemsLayout>
35+
<LinearItemsLayout Orientation="Horizontal" />
36+
</CollectionView.ItemsLayout>
37+
<CollectionView.ItemTemplate>
38+
<DataTemplate x:DataType="viewmodel:PortForShow">
39+
<StackLayout Orientation="Horizontal" Spacing="10" Padding="5">
40+
<Label Text="{Binding Port}"
41+
VerticalOptions="CenterAndExpand"
42+
FontSize="Small"
43+
TextColor="White"/>
44+
<CheckBox IsChecked="{Binding IsChecked}"
45+
VerticalOptions="CenterAndExpand"
46+
Color="DodgerBlue">
2747

2848
</CheckBox>
2949
</StackLayout>

fast cf ip scanner/Views/IpOptionsPage.xaml.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,5 @@ public IpOptionsPage(IpOptionViewModel viewModel)
1010
vm = viewModel;
1111
}
1212

13-
private void CheckBox_CheckedChanged(object sender, CheckedChangedEventArgs e)
14-
{
15-
vm.UpdateVar();
16-
}
13+
1714
}

0 commit comments

Comments
 (0)