Commit 79d4500a authored by M1888's avatar M1888

aamukoodailut

parent 794e6fb4
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<StackPanel> <StackPanel>
<DockPanel Margin="5"> <DockPanel Margin="5">
<Label>Pelaajia</Label> <Label>Pelaajia</Label>
<TextBox Style="{StaticResource Asetusboksi}" x:Name="txbPelaajia" Text="{Binding Pelaajia, Mode=TwoWay}" /> <TextBox Style="{StaticResource Asetusboksi}" x:Name="txbPelaajia" Text="{Binding Pelaajia, Mode=TwoWay}" TextChanged="txbChanged"/>
</DockPanel> </DockPanel>
<TextBlock Margin="25,-5,0,0">Simulaatiossa käytettävien pelaajien määrä.</TextBlock> <TextBlock Margin="25,-5,0,0">Simulaatiossa käytettävien pelaajien määrä.</TextBlock>
</StackPanel> </StackPanel>
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<StackPanel> <StackPanel>
<DockPanel Margin="5"> <DockPanel Margin="5">
<Label>Rivejä</Label> <Label>Rivejä</Label>
<TextBox Style="{StaticResource Asetusboksi}" x:Name="txbRiveja" Text="{Binding Riveja, Mode=TwoWay}" /> <TextBox Style="{StaticResource Asetusboksi}" x:Name="txbRiveja" Text="{Binding Riveja, Mode=TwoWay}" TextChanged="txbChanged" />
</DockPanel> </DockPanel>
<TextBlock Margin="25,-5,0,0">Simuloitujen pelaajien rivien määrä per pelaaja.</TextBlock> <TextBlock Margin="25,-5,0,0">Simuloitujen pelaajien rivien määrä per pelaaja.</TextBlock>
</StackPanel> </StackPanel>
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<StackPanel> <StackPanel>
<DockPanel Margin="5"> <DockPanel Margin="5">
<Label>Rivit voimassa</Label> <Label>Rivit voimassa</Label>
<TextBox Style="{StaticResource Asetusboksi}" x:Name="txbVoimassa" Text="{Binding Voimassa, Mode=TwoWay}" /> <TextBox Style="{StaticResource Asetusboksi}" x:Name="txbVoimassa" Text="{Binding Voimassa, Mode=TwoWay}" TextChanged="txbChanged" />
</DockPanel> </DockPanel>
<TextBlock Margin="25,-5,0,0">Kuinka monta kierrosta simuloitujen pelaajien rivit pysyvät voimassa, kunnes ne arvotaan uudelleen.</TextBlock> <TextBlock Margin="25,-5,0,0">Kuinka monta kierrosta simuloitujen pelaajien rivit pysyvät voimassa, kunnes ne arvotaan uudelleen.</TextBlock>
</StackPanel> </StackPanel>
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
<StackPanel> <StackPanel>
<DockPanel Margin="5"> <DockPanel Margin="5">
<Label>Arparivejä</Label> <Label>Arparivejä</Label>
<TextBox Style="{StaticResource Asetusboksi}" x:Name="txbArparivit" Text="{Binding Arparivit, Mode=TwoWay}" /> <TextBox Style="{StaticResource Asetusboksi}" x:Name="txbArparivit" Text="{Binding Arparivit, Mode=TwoWay}" TextChanged="txbChanged" />
</DockPanel> </DockPanel>
<TextBlock Margin="25,-5,0,0">Kuinka monta satunnaisesti arvottua riviä haluat pitää</TextBlock> <TextBlock Margin="25,-5,0,0">Kuinka monta satunnaisesti arvottua riviä haluat pitää</TextBlock>
</StackPanel> </StackPanel>
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
<StackPanel> <StackPanel>
<DockPanel Margin="5"> <DockPanel Margin="5">
<Label>Arparivit voimassa</Label> <Label>Arparivit voimassa</Label>
<TextBox Style="{StaticResource Asetusboksi}" x:Name="txbArparivitVoimassa" Text="{Binding ArparivitVoimassa, Mode=TwoWay}" /> <TextBox Style="{StaticResource Asetusboksi}" x:Name="txbArparivitVoimassa" Text="{Binding ArparivitVoimassa, Mode=TwoWay}" TextChanged="txbChanged" />
</DockPanel> </DockPanel>
<TextBlock Margin="25,-5,0,0">Kuinka monen kierroksen välein rivisi arvotaan uudelleen?</TextBlock> <TextBlock Margin="25,-5,0,0">Kuinka monen kierroksen välein rivisi arvotaan uudelleen?</TextBlock>
</StackPanel> </StackPanel>
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
<StackPanel> <StackPanel>
<DockPanel Margin="5"> <DockPanel Margin="5">
<Label>Vakiorivejä</Label> <Label>Vakiorivejä</Label>
<TextBox Style="{StaticResource Asetusboksi}" x:Name="txbVakiorivit" Text="{Binding Vakiorivit, Mode=TwoWay}" /> <TextBox Style="{StaticResource Asetusboksi}" x:Name="txbVakiorivit" Text="{Binding Vakiorivit, Mode=TwoWay}" TextChanged="txbChanged" />
</DockPanel> </DockPanel>
<TextBlock Margin="25,-5,0,0">Montako vakioriviä haluat pelata?</TextBlock> <TextBlock Margin="25,-5,0,0">Montako vakioriviä haluat pelata?</TextBlock>
<Button Content="Aseta rivit" Width="100" x:Name="btnRivit" Click="BtnRivit_Click" /> <Button Content="Aseta rivit" Width="100" x:Name="btnRivit" Click="BtnRivit_Click" />
...@@ -83,6 +83,7 @@ ...@@ -83,6 +83,7 @@
</StackPanel> </StackPanel>
<Button x:Name="btnSave" Content="Tallenna &amp; sulje" Click="btnSave_Click" Margin="15" /> <Button x:Name="btnSave" Content="Tallenna &amp; sulje" Click="btnSave_Click" Margin="15" />
<Label x:Name="lblInfo" Foreground="Red" />
</StackPanel> </StackPanel>
</Grid> </Grid>
</Window> </Window>
...@@ -37,5 +37,27 @@ namespace Lottokone ...@@ -37,5 +37,27 @@ namespace Lottokone
var ikkuna = new Lottorivit(); var ikkuna = new Lottorivit();
ikkuna.ShowDialog(); ikkuna.ShowDialog();
} }
public void txbChanged(object sender, TextChangedEventArgs e)
{
TextBox tb = sender as TextBox;
if (tb != null)
{
bool ok = false;
if (int.TryParse(tb.Text, out int result))
if (result >= 0 && result < 6_000_000)
ok = true;
if (!ok)
{
lblInfo.Content = "Asetathan luvuille tarkoitettuihin laatikoihin vain numeroita.";
btnSave.IsEnabled = false;
}
else
{
lblInfo.Content = "";
btnSave.IsEnabled = true;
}
}
}
} }
} }
...@@ -148,6 +148,12 @@ ...@@ -148,6 +148,12 @@
<ItemGroup> <ItemGroup>
<Resource Include="Resources\lottovoittaja.png" /> <Resource Include="Resources\lottovoittaja.png" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Resource Include="Resources\lotto0.png" />
<Resource Include="Resources\lotto1.png" />
<Resource Include="Resources\lotto2.png" />
<Resource Include="Resources\lotto3.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="packages\System.Data.SQLite.Core.1.0.110.0\build\net46\System.Data.SQLite.Core.targets" Condition="Exists('packages\System.Data.SQLite.Core.1.0.110.0\build\net46\System.Data.SQLite.Core.targets')" /> <Import Project="packages\System.Data.SQLite.Core.1.0.110.0\build\net46\System.Data.SQLite.Core.targets" Condition="Exists('packages\System.Data.SQLite.Core.1.0.110.0\build\net46\System.Data.SQLite.Core.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
......
...@@ -5,10 +5,7 @@ ...@@ -5,10 +5,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Lottokone" xmlns:local="clr-namespace:Lottokone"
mc:Ignorable="d" mc:Ignorable="d"
Title="Lottokone" Height="450" Width="950"> Title="Lottokone" Height="450" Width="950" Background="Black">
<Window.Background>
<ImageBrush ImageSource="Resources/lotto.png" />
</Window.Background>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<StackPanel Margin="0,10,0,0"> <StackPanel Margin="0,10,0,0">
<Button x:Name="btnNext" Margin="0,5,0,0" Content="Seuraava viikko" Click="btnNext_Click"/> <Button x:Name="btnNext" Margin="0,5,0,0" Content="Seuraava viikko" Click="btnNext_Click"/>
...@@ -16,17 +13,19 @@ ...@@ -16,17 +13,19 @@
<Button x:Name="btnStop" Margin="0,5,0,0" Content="Pysäytä" Click="btnStop_Click"/> <Button x:Name="btnStop" Margin="0,5,0,0" Content="Pysäytä" Click="btnStop_Click"/>
<Button x:Name="btnSettings" Margin="0,50,0,0" Content="Asetukset" Click="btnSettings_Click" /> <Button x:Name="btnSettings" Margin="0,50,0,0" Content="Asetukset" Click="btnSettings_Click" />
</StackPanel> </StackPanel>
<StackPanel Height="400">
<StackPanel x:Name="spLotto" Width="250" Background="White" Opacity="0.6" VerticalAlignment="Top"> <StackPanel x:Name="spLotto" Width="250" Background="White" Opacity="0.6" VerticalAlignment="Top">
<Label Style="{StaticResource Isompi}" Content="{Binding Vuosi}" ContentStringFormat="Vuosi: {0}"/> <Label Style="{StaticResource Isompi}" Content="{Binding Vuosi}" ContentStringFormat="Vuosi: {0}"/>
<Label Style="{StaticResource Isompi}" Content="{Binding Viikko}" ContentStringFormat="Viikko: {0}"/> <Label Style="{StaticResource Isompi}" Content="{Binding Viikko}" ContentStringFormat="Viikko: {0}"/>
<Label Style="{StaticResource Isompi}" Content="{Binding Rivimaara}" ContentStringFormat="Rivejä: {0:N0}"/> <Label Style="{StaticResource Isompi}" Content="{Binding Rivimaara}" ContentStringFormat="Rivejä: {0:N0}"/>
<Label Style="{StaticResource Isompi}" Content="{Binding Potti}" ContentStringFormat="Potti: {0:C0}"/> <Label Style="{StaticResource Isompi}" Content="{Binding Voitot[0]}" ContentStringFormat="Päävoitto: {0:C0}"/>
<Label Style="{StaticResource Isompi}" Content="{Binding Paavoitto}" ContentStringFormat="Päävoitto: {0:C0}"/>
<Label Style="{StaticResource Isompi}">Voittorivi:</Label> <Label Style="{StaticResource Isompi}">Voittorivi:</Label>
<Label Style="{StaticResource Isompi}" Content="{Binding Voittorivi}" /> <Label Style="{StaticResource Isompi}" Content="{Binding Voittorivi}" />
</StackPanel> </StackPanel>
<Image x:Name="imgLotto" Width="250" Height="300" HorizontalAlignment="Left" VerticalAlignment="Bottom" Source="Resources/lotto0.png"/>
</StackPanel>
<StackPanel> <StackPanel>
<Label Style="{StaticResource Isompi}" Content="Status:"/> <Label Style="{StaticResource Isompi}" Foreground="White" Content="Status:"/>
<ListView Height="350" Width="300" x:Name="lstStatus" ItemsSource="{Binding Value, UpdateSourceTrigger=PropertyChanged}" Opacity="0.7"/> <ListView Height="350" Width="300" x:Name="lstStatus" ItemsSource="{Binding Value, UpdateSourceTrigger=PropertyChanged}" Opacity="0.7"/>
</StackPanel> </StackPanel>
<StackPanel> <StackPanel>
...@@ -36,7 +35,7 @@ ...@@ -36,7 +35,7 @@
<Label Style="{StaticResource Isompi}" Content="{Binding Riveja}" ContentStringFormat="Rivejä: {0:N0}" /> <Label Style="{StaticResource Isompi}" Content="{Binding Riveja}" ContentStringFormat="Rivejä: {0:N0}" />
</StackPanel> </StackPanel>
<StackPanel Width="300"> <StackPanel Width="300">
<Label Style="{StaticResource Isompi}" Content="Omat voitot:" Margin="0,100,0,0"/> <Label Style="{StaticResource Isompi}" Foreground="White" Content="Omat voitot:" Margin="0,100,0,0"/>
<ListView x:Name="lstVoitot" Height="180" Width="300" Opacity="0.7"> <ListView x:Name="lstVoitot" Height="180" Width="300" Opacity="0.7">
</ListView> </ListView>
</StackPanel> </StackPanel>
......
...@@ -57,26 +57,32 @@ namespace Lottokone ...@@ -57,26 +57,32 @@ namespace Lottokone
case 3: case 3:
if (r.Numerot.Contains(kone.Voittorivi.Lisanumero)) if (r.Numerot.Contains(kone.Voittorivi.Lisanumero))
{ {
s = $"Kierros {kone.Kierros}: 3+1 oikein";
s = $"Kierros {kone.Kierros}: 3+1 oikein ({kone.Voitot[5]:C0})";
} }
break; break;
case 4: case 4:
s = $"Kierros {kone.Kierros}: 4 oikein"; s = $"Kierros {kone.Kierros}: 4 oikein ({kone.Voitot[4]:C0})";
break; break;
case 5: case 5:
s = $"Kierros {kone.Kierros}: 5 oikein"; s = $"Kierros {kone.Kierros}: 5 oikein ({kone.Voitot[3]:C0})";
break; break;
case 6: case 6:
this.Dispatcher.Invoke(() =>
{
this.Background = Brushes.Pink;
imgLotto.Source = new BitmapImage(new Uri(@"Resources/lotto1.png", UriKind.Relative));
});
s = $"Kierros {kone.Kierros}: "; s = $"Kierros {kone.Kierros}: ";
// taas lisänumeron tarkistus // taas lisänumeron tarkistus
if (r.Numerot.Contains(kone.Voittorivi.Lisanumero)) if (r.Numerot.Contains(kone.Voittorivi.Lisanumero))
s += "6+1 oikein!!! Melkein jo kannattaa?!"; s += $"6+1 oikein!!! {kone.Voitot[1]:C0} - Melkein jo kannattaa?!";
else else
s += "6 oikein!"; s += $"6 oikein! ({kone.Voitot[2]:C0})";
break; break;
case 7: case 7:
// Päävoitto jos osuu, niin pelin voinee pysäyttää. // Päävoitto jos osuu, niin pelin voinee pysäyttää.
s = $"Kierros {kone.Kierros}: PÄÄVOITTO!!!! JUMANTSUIKKA! Kannattaa ehkä lotota oikeastikin?! " + s = $"Kierros {kone.Kierros}: PÄÄVOITTO!!!! ({kone.Voitot[0]:C0}) JUMANTSUIKKA! Kannattaa ehkä lotota oikeastikin?! " +
"Ellet käyttänyt kaikkea onneasi tähän...."; "Ellet käyttänyt kaikkea onneasi tähän....";
kaynnissa = false; kaynnissa = false;
break; break;
...@@ -176,6 +182,64 @@ namespace Lottokone ...@@ -176,6 +182,64 @@ namespace Lottokone
{ {
var a = new Asetukset(); var a = new Asetukset();
a.ShowDialog(); a.ShowDialog();
// kun asetuksista palataan, voidaan ottaa uudet asetukset käyttöön.
int curr = kone.Pelaajat.Count();
// + 1 koska pelaajissa on myös meidän pelaajaolio
int uusi = Properties.Settings.Default.Pelaajia + 1;
if (curr < uusi)
{
kone.LisaaPelaajia(uusi - curr, Properties.Settings.Default.Riveja);
kone.Status = $"Lisätty {uusi - curr} pelaajaa.";
}
else if (curr > uusi)
{
kone.PoistaPelaajia(curr - uusi);
kone.Status = $"Poistettu {curr - uusi} pelaajaa.";
}
Pelaaja tmp = kone.Pelaajat.Last();
if (tmp.RivitVoimassa != Properties.Settings.Default.Voimassa)
{
kone.Status = $"Rivit voimassa {tmp.RivitVoimassa} -> {Properties.Settings.Default.Voimassa} viikkoa";
foreach (Pelaaja p in kone.Pelaajat)
{
p.RivitVoimassa = Properties.Settings.Default.Voimassa;
}
}
if(tmp.Riveja != Properties.Settings.Default.Riveja)
{
kone.Status = $"Simuloitujen pelaajien rivejä {tmp.Riveja} -> {Properties.Settings.Default.Riveja}";
foreach(Pelaaja p in kone.Pelaajat)
{
p.Riveja = Properties.Settings.Default.Riveja;
}
}
// saatettiin poistaa pelaajia, niin varmistetaan, että meidän pelaaja on
// yhä lotossa mukana...
if (!kone.Pelaajat.Contains(pelaaja))
{
kone.Status = "Lisätty oma pelaaja takaisin listoille";
kone.Pelaajat.Add(pelaaja);
}
if (pelaaja.Nimi != Properties.Settings.Default.Nimi)
pelaaja.Nimi = Properties.Settings.Default.Nimi;
if (pelaaja.Riveja != Properties.Settings.Default.Arparivit + Properties.Settings.Default.Vakiorivit)
{
kone.Status = $"Omat rivit {pelaaja.Riveja} -> {Properties.Settings.Default.Arparivit + Properties.Settings.Default.Vakiorivit}";
pelaaja.Riveja = Properties.Settings.Default.Arparivit + Properties.Settings.Default.Vakiorivit;
}
if (pelaaja.RivitVoimassa != Properties.Settings.Default.ArparivitVoimassa)
pelaaja.RivitVoimassa = Properties.Settings.Default.ArparivitVoimassa;
} }
} }
} }
...@@ -79,17 +79,14 @@ namespace Lottokone.Model ...@@ -79,17 +79,14 @@ namespace Lottokone.Model
public ConcurrentBag<Pelaaja> Pelaajat { get; set; } public ConcurrentBag<Pelaaja> Pelaajat { get; set; }
private int paavoitto; // Tässä pidetään joka kierroksella jaettujen eri voittoluokkien
public int Paavoitto // palkkioiden määrät.
private int[] voitot;
public int[] Voitot
{ {
get get
{ {
return paavoitto; return voitot;
}
set
{
paavoitto = value;
RaisePropertyChanged();
} }
} }
...@@ -169,7 +166,20 @@ namespace Lottokone.Model ...@@ -169,7 +166,20 @@ namespace Lottokone.Model
public Lotto() public Lotto()
{ {
Potti = 0; Potti = 0;
Paavoitto = 1_250_000;
voitot = new int[6];
// voitot[0]: 7 oikein
// voitot[1]: 6+1 oikein
// voitot[2]: 6 oikein
// voitot[3]: 5 oikein
// voitot[4]: 4 oikein
// voitot[5]: 3+1 oikein
// näistä potista riippumattomia voittosummia on 7, 4 ja 3+1 oikein,
// joten ne voidaan asettaa tässä.
voitot[0] = 1_250_000;
voitot[4] = 10;
voitot[5] = 2;
Viikko = 0; Viikko = 0;
Vuosi = 1; Vuosi = 1;
Pelaajat = new ConcurrentBag<Pelaaja>(); Pelaajat = new ConcurrentBag<Pelaaja>();
...@@ -195,6 +205,11 @@ namespace Lottokone.Model ...@@ -195,6 +205,11 @@ namespace Lottokone.Model
} }
} }
public void PoistaPelaajia(int maara)
{
Pelaajat = new ConcurrentBag<Pelaaja>(Pelaajat.Skip(maara).ToList());
}
public void Tick() public void Tick()
{ {
stopwatch.Reset(); stopwatch.Reset();
...@@ -216,6 +231,7 @@ namespace Lottokone.Model ...@@ -216,6 +231,7 @@ namespace Lottokone.Model
Voittorivi = new Voittorivi(); Voittorivi = new Voittorivi();
EtsiVoittajat(); EtsiVoittajat();
RaisePropertyChanged("Rivimaara");
Potti = (int)(Rivimaara * Properties.Settings.Default.Rivihinta); Potti = (int)(Rivimaara * Properties.Settings.Default.Rivihinta);
JaaVoitot(); JaaVoitot();
...@@ -293,62 +309,65 @@ namespace Lottokone.Model ...@@ -293,62 +309,65 @@ namespace Lottokone.Model
if (!oikein5.IsEmpty) if (!oikein5.IsEmpty)
{ {
int voittajia = oikein5.Count(); int voittajia = oikein5.Count();
int voitto = ((potti / 100) * 3) / voittajia; voitot[3] = ((potti / 100) * 3) / voittajia;
Status = $"5 oikein voittoja {voittajia:N0} kpl ({voitto:C0})"; Status = $"5 oikein voittoja {voittajia:N0} kpl ({voitot[3]:C0})";
while (oikein5.TryTake(out Pelaaja p) != false) while (oikein5.TryTake(out Pelaaja p) != false)
{ {
p.Saldo += voitto; p.Saldo += voitot[3];
Potti -= voitto; Potti -= voitot[3];
} }
} }
if (!oikein6.IsEmpty) if (!oikein6.IsEmpty)
{ {
int voittajia = oikein6.Count(); int voittajia = oikein6.Count();
int voitto = (int)((potti / 100) * 2.5) / voittajia; voitot[2] = (int)((potti / 100) * 2.5) / voittajia;
Status = $"6 oikein voittoja {voittajia:N0} kpl ({voitto:C0})"; Status = $"6 oikein voittoja {voittajia:N0} kpl ({voitot[2]:C0})";
while (oikein6.TryTake(out Pelaaja p) != false) while (oikein6.TryTake(out Pelaaja p) != false)
{ {
p.Saldo += voitto; p.Saldo += voitot[2];
Potti -= voitto; Potti -= voitot[2];
} }
} }
if(!oikein6_1.IsEmpty) if(!oikein6_1.IsEmpty)
{ {
int voittajia = oikein6_1.Count(); int voittajia = oikein6_1.Count();
int voitto = (int)((potti / 100) * 3.8) / voittajia; voitot[1] = (int)((potti / 100) * 3.8) / voittajia;
Status = $"6+1 oikein voittoja {voittajia:N0} kpl ({voitto:C0})"; Status = $"6+1 oikein voittoja {voittajia:N0} kpl ({voitot[1]:C0})";
while (oikein6.TryTake(out Pelaaja p) != false) while (oikein6.TryTake(out Pelaaja p) != false)
{ {
p.Saldo += voitto; p.Saldo += voitot[1];
Potti -= voitto; Potti -= voitot[1];
} }
} }
if (!oikein7.IsEmpty) if (!oikein7.IsEmpty)
{ {
int voittajia = oikein7.Count(); int voittajia = oikein7.Count();
int voitto = (int)(paavoitto / voittajia); voitot[0] = (int)(voitot[0] / voittajia);
Paavoitto = 1_250_000;
Status = $"!!! 7 oikein !!!! {voitto:C0} ({voittajia:N0} kpl) !!!"; Status = $"!!! 7 oikein !!!! {voitot[0]:C0} ({voittajia:N0} kpl) !!!";
while (oikein7.TryTake(out Pelaaja p) != false) while (oikein7.TryTake(out Pelaaja p) != false)
{ {
p.Saldo += voitto; p.Saldo += voitot[0];
} }
voitot[0] = 1_250_000;
} }
else else
{ {
Paavoitto = (int)(Paavoitto * 1.1); // n. 20 miljoonaa lienee hyvä maksimi päävoitto
if(voitot[0] < 20_000_000)
voitot[0] = (int)(voitot[0] * 1.07);
} }
RaisePropertyChanged("Voitot");
} }
protected void RaisePropertyChanged([CallerMemberName] string propertyName = null) protected void RaisePropertyChanged([CallerMemberName] string propertyName = null)
......
...@@ -10,15 +10,15 @@ namespace Lottokone.Model ...@@ -10,15 +10,15 @@ namespace Lottokone.Model
{ {
public short Viikko { get; set; } public short Viikko { get; set; }
// Viikkoja, montako voimassa. null = ikuinen // Viikkoja, montako voimassa. 0 = ikuinen
public Nullable<int> Voimassa { get; set; } public int Voimassa { get; set; }
public Lottorivi() : base() public Lottorivi() : base()
{ {
Voimassa = Properties.Settings.Default.Voimassa; Voimassa = Properties.Settings.Default.Voimassa;
} }
public Lottorivi(Nullable<int> voimassa) : base() public Lottorivi(int voimassa) : base()
{ {
Voimassa = voimassa; Voimassa = voimassa;
} }
......
...@@ -97,10 +97,12 @@ namespace Lottokone.Model ...@@ -97,10 +97,12 @@ namespace Lottokone.Model
for (int i = Rivit.Count() - 1; i > 0; i--) for (int i = Rivit.Count() - 1; i > 0; i--)
{ {
Lottorivi r = Rivit[i]; Lottorivi r = Rivit[i];
if (r.Voimassa != null) // jos rivi on tässä vaiheessa nolla viikkoa voimassa,
// niin se on ikuinen rivi, jota ei arvota uudelleen.
if (r.Voimassa != 0)
{ {
r.Voimassa--; r.Voimassa--;
if (r.Voimassa < 0) if (r.Voimassa == 0)
Rivit.Remove(r); Rivit.Remove(r);
} }
} }
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment