Asetukset.xaml.cs 4.01 KB
Newer Older
M1888's avatar
M1888 committed
1 2 3 4 5 6 7 8 9 10 11 12 13
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
M1888's avatar
M1888 committed
14
using Lottokone.Model;
M1888's avatar
M1888 committed
15 16 17 18 19 20 21 22 23 24 25

namespace Lottokone
{
    /// <summary>
    /// Interaction logic for Asetukset.xaml
    /// </summary>
    public partial class Asetukset : Window
    {
        public Asetukset()
        {
            InitializeComponent();
M1888's avatar
M1888 committed
26 27

            // sidotaan asetukset ikkunaan
M1888's avatar
M1888 committed
28 29
            spSettings.DataContext = Properties.Settings.Default;
        }
M1888's avatar
M1888 committed
30 31 32

        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
M1888's avatar
M1888 committed
33
            // tallennetaan asetukset ja suljetaan ikkuna
M1888's avatar
M1888 committed
34 35 36
            Properties.Settings.Default.Save();
            this.Close();
        }
M1888's avatar
M1888 committed
37 38 39

        private void BtnRivit_Click(object sender, RoutedEventArgs e)
        {
M1888's avatar
M1888 committed
40
            // lottorivit-ikkuna aukeaa uutena dialogina
M1888's avatar
M1888 committed
41
            new Lottorivit().ShowDialog();
M1888's avatar
M1888 committed
42
        }
M1888's avatar
M1888 committed
43 44
        public void txbChanged(object sender, TextChangedEventArgs e)
        {
M1888's avatar
M1888 committed
45
            // validoidaan syötettä vähän, ettei mene älyttömäksi.
M1888's avatar
M1888 committed
46 47 48 49
            TextBox tb = sender as TextBox;
            if (tb != null)
            {
                bool ok = false;
M1888's avatar
M1888 committed
50 51 52 53 54 55
                
                // Säädellään jotain järkeviä maksimiarvoja eri laatikoille
                int maksimi;
                switch(tb.Name)
                {
                    case "txbPelaajia":
M1888's avatar
M1888 committed
56 57
                        // max 5 miljoonaa pelaajaa
                        maksimi = 5_000_000;
M1888's avatar
M1888 committed
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
                        break;
                    case "txbRiveja":
                        // max 100 000 riviä per pelaaja
                        maksimi = 100_000;
                        break;
                    case "txbHinta":
                        // 20e per rivi kuulostaa jo aika kalliilta
                        maksimi = 20;
                        break;
                    case "txbArparivit":
                        // Liikaa jos on omia rivejä, niin menee voittohistoria tukkoon pikkuvoitoista.
                        // 100 000 alkaa olla jo aika rajoilla.
                        maksimi = 100_000;
                        break;
                    default:
                        // muille ihan sama, melkeinpä.
                        maksimi = Int32.MaxValue;
                        break;

                }

M1888's avatar
M1888 committed
79
                if (int.TryParse(tb.Text, out int result))
M1888's avatar
M1888 committed
80
                    if (result >= 0 && result <= maksimi)
M1888's avatar
M1888 committed
81 82 83 84
                        ok = true;

                if (!ok)
                {
M1888's avatar
M1888 committed
85
                    lblInfo.Content = $"{tb.Name}: sallitut luvut väliltä 0 - {maksimi:N0}";
M1888's avatar
M1888 committed
86 87 88 89 90 91 92 93 94
                    btnSave.IsEnabled = false;
                }
                else
                {
                    lblInfo.Content = "";
                    btnSave.IsEnabled = true;
                }
            }
        }
M1888's avatar
M1888 committed
95 96 97

        private void TxbVakiorivit_TextChanged(object sender, TextChangedEventArgs e)
        {
M1888's avatar
M1888 committed
98 99
            // vakiorivit pitää validoida erikseen, jotta voidaan säätää vakiorivien säädön
            // ikkunan avaavan napin aktiivisuutta samalla.
M1888's avatar
M1888 committed
100 101 102 103 104 105 106 107 108 109 110 111
            TextBox tb = sender as TextBox;
            if(tb != null)
            {
                bool ok = false;
                if (int.TryParse(tb.Text, out int result))
                {
                    if(result >= 0 && result <= 15)
                        ok = true;
                }
                if(!ok)
                {
                    lblInfo.Content = "Vakiorivejä voi olla 0-15 kpl";
M1888's avatar
M1888 committed
112
                    btnSave.IsEnabled = false;
M1888's avatar
M1888 committed
113 114 115 116 117 118
                    btnRivit.IsEnabled = false;
                }
                else
                {
                    lblInfo.Content = "";
                    btnRivit.IsEnabled = true;
M1888's avatar
M1888 committed
119
                    btnSave.IsEnabled = true;
M1888's avatar
M1888 committed
120 121 122 123
                }
            }

        }
M1888's avatar
M1888 committed
124 125
    }
}