Asetukset.xaml.cs 3.92 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 26 27

namespace Lottokone
{
    /// <summary>
    /// Interaction logic for Asetukset.xaml
    /// </summary>
    public partial class Asetukset : Window
    {
        public Asetukset()
        {
            InitializeComponent();
            spSettings.DataContext = Properties.Settings.Default;
        }
M1888's avatar
M1888 committed
28 29 30 31 32 33

        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            Properties.Settings.Default.Save();
            this.Close();
        }
M1888's avatar
M1888 committed
34 35 36

        private void BtnRivit_Click(object sender, RoutedEventArgs e)
        {
M1888's avatar
M1888 committed
37
            new Lottorivit().ShowDialog();
M1888's avatar
M1888 committed
38
        }
M1888's avatar
M1888 committed
39 40
        public void txbChanged(object sender, TextChangedEventArgs e)
        {
M1888's avatar
M1888 committed
41 42 43 44
            // Yleismaallinen validaattori luvuille.
            // Voisi tehdä tarkemminkin, voi olla että ei toimi ihan kuin suunniteltua
            // jos lyö yhden lottorivin hinnaksi vaikka tuon 6 miljoonaa.
            // En kuitenkaan nyt jaksa naputella ihan joka boksille omaa validaatiota.
M1888's avatar
M1888 committed
45 46 47 48
            TextBox tb = sender as TextBox;
            if (tb != null)
            {
                bool ok = false;
M1888's avatar
M1888 committed
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
                
                // Säädellään jotain järkeviä maksimiarvoja eri laatikoille
                int maksimi;
                switch(tb.Name)
                {
                    case "txbPelaajia":
                        // max 25 miljoonaa pelaajaa
                        maksimi = 25_000_000;
                        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
78
                if (int.TryParse(tb.Text, out int result))
M1888's avatar
M1888 committed
79
                    if (result >= 0 && result <= maksimi)
M1888's avatar
M1888 committed
80 81 82 83
                        ok = true;

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

        private void TxbVakiorivit_TextChanged(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 <= 15)
                        ok = true;
                }
                if(!ok)
                {
                    lblInfo.Content = "Vakiorivejä voi olla 0-15 kpl";
M1888's avatar
M1888 committed
109
                    btnSave.IsEnabled = false;
M1888's avatar
M1888 committed
110 111 112 113 114 115
                    btnRivit.IsEnabled = false;
                }
                else
                {
                    lblInfo.Content = "";
                    btnRivit.IsEnabled = true;
M1888's avatar
M1888 committed
116
                    btnSave.IsEnabled = true;
M1888's avatar
M1888 committed
117 118 119 120
                }
            }

        }
M1888's avatar
M1888 committed
121 122
    }
}