private List <SyotetytArvot> LuetaanSyotetytArvot() { //Lukee käyttäjän syöttämät arvot, lisää ne listaan ja palauttaa listan //Syötetyissä arvoissa saattaa olla välejä (kaikkeja rivejä ei täytetty) joten koodi tarkistaa sen myös List <SyotetytArvot> sa = new List <SyotetytArvot>(); double g; try { if (double.TryParse(seulaG0.Text, out g)) { SyotetytArvot s = new SyotetytArvot(); g = Convert.ToDouble(seulaG0.Text); s.syote = g; s.index = 1; sa.Add(s); } if (double.TryParse(seulaG1.Text, out g)) { SyotetytArvot s = new SyotetytArvot(); g = Convert.ToDouble(seulaG1.Text); s.syote = g; s.index = 2; sa.Add(s); } if (double.TryParse(seulaG2.Text, out g)) { SyotetytArvot s = new SyotetytArvot(); g = Convert.ToDouble(seulaG2.Text); s.syote = g; s.index = 3; sa.Add(s); } if (double.TryParse(seulaG3.Text, out g)) { SyotetytArvot s = new SyotetytArvot(); g = Convert.ToDouble(seulaG3.Text); s.syote = g; s.index = 4; sa.Add(s); } if (double.TryParse(seulaG4.Text, out g)) { SyotetytArvot s = new SyotetytArvot(); g = Convert.ToDouble(seulaG4.Text); s.syote = g; s.index = 5; sa.Add(s); } if (double.TryParse(seulaG5.Text, out g)) { SyotetytArvot s = new SyotetytArvot(); g = Convert.ToDouble(seulaG5.Text); s.syote = g; s.index = 6; sa.Add(s); } if (double.TryParse(seulaG6.Text, out g)) { SyotetytArvot s = new SyotetytArvot(); g = Convert.ToDouble(seulaG6.Text); s.syote = g; s.index = 7; sa.Add(s); } if (double.TryParse(seulaG7.Text, out g)) { SyotetytArvot s = new SyotetytArvot(); g = Convert.ToDouble(seulaG7.Text); s.syote = g; s.index = 8; sa.Add(s); } if (double.TryParse(seulaG8.Text, out g)) { SyotetytArvot s = new SyotetytArvot(); g = Convert.ToDouble(seulaG8.Text); s.syote = g; s.index = 9; sa.Add(s); } if (double.TryParse(seulaG9.Text, out g)) { SyotetytArvot s = new SyotetytArvot(); g = Convert.ToDouble(seulaG9.Text); s.syote = g; s.index = 10; sa.Add(s); } if (double.TryParse(seulaG10.Text, out g)) { SyotetytArvot s = new SyotetytArvot(); g = Convert.ToDouble(seulaG10.Text); s.syote = g; s.index = 11; sa.Add(s); } if (double.TryParse(seulaG11.Text, out g)) { SyotetytArvot s = new SyotetytArvot(); g = Convert.ToDouble(seulaG11.Text); s.syote = g; s.index = 12; sa.Add(s); } if (double.TryParse(seulaG12.Text, out g)) { SyotetytArvot s = new SyotetytArvot(); g = Convert.ToDouble(seulaG12.Text); s.syote = g; s.index = 13; sa.Add(s); } if (double.TryParse(seulaG13.Text, out g)) { SyotetytArvot s = new SyotetytArvot(); g = Convert.ToDouble(seulaG13.Text); s.syote = g; s.index = 14; sa.Add(s); } if (double.TryParse(seulaG14.Text, out g)) { SyotetytArvot s = new SyotetytArvot(); g = Convert.ToDouble(seulaG14.Text); s.syote = g; s.index = 15; sa.Add(s); } if (double.TryParse(seulaG15.Text, out g)) { SyotetytArvot s = new SyotetytArvot(); g = Convert.ToDouble(seulaG15.Text); s.syote = g; s.index = 16; sa.Add(s); } if (double.TryParse(seulaG16.Text, out g)) { SyotetytArvot s = new SyotetytArvot(); g = Convert.ToDouble(seulaG16.Text); s.syote = g; s.index = 17; sa.Add(s); } } catch { } return(sa); }
public string Save(Window w, List <Seulakirjasto> seulist) { seulalista = seulist; string json = null; //--------------------------Tarkoituksena ottaa ikkunasta tiedot talteen ja muuttaa ne JSON-stringiksi ja palauttaa se------------------------------------ if (w.Name == "kiviohjelma") //Jos ikkuna mistä funktiota kutsuttiin on Kiviohjelma, mennään tästä sisälle { Kiviohjelma kiv = (Kiviohjelma)w; //Otetaan kiviohjelma tähän. Tämän avulla otetaan tallennettavat tiedot List <SyotetytArvot> syotteet = new List <SyotetytArvot>(); //Kaikki käyttäjän syöttämät tiedot kentistä "Seulalle Jäi (g)" List <SeulaTallennus> seulacombot = new List <SeulaTallennus>(); //Seulacomboboksin arvot laitetaan tänne (mikä seula valittu, mones seula listasta se on ja mikä on comboboksin sijainti) bool pesuseulValinta = false; JakoAsetukset jako = new JakoAsetukset(); //Laitetaan jaetun näytteen asetukset tänne talteen List <TekstiTiedot> tekstitiedot = new List <TekstiTiedot>(); //Tähän laitetaan talteen muut tiedot ohjelman yläosasta (nimi, työmaa, lajite jne...) List <SeulaLapPros> sisOhjeAla = new List <SeulaLapPros>(); //Sisempi ohjealue, alempi ohje% List <SeulaLapPros> sisOhjeYla = new List <SeulaLapPros>(); //Sisempi ohjealue, ylempi ohje% List <SeulaLapPros> uloOhjeAla = new List <SeulaLapPros>(); //Ulompi ohjealue, alempi ohje% List <SeulaLapPros> uloOhjeYla = new List <SeulaLapPros>(); //Ulompi ohjealue, ylempi ohje% //Otetaan talteen käyttäjän syöttämät tiedot kentistä "Seulalle Jäi (g)" foreach (Control c in kiv.seulaArvot.Children) //Katsoo läpi kaikki objektit seulaArvot-canvasista { if (c.GetType() == typeof(TextBox)) //jos objektin tyyppi on TextBox { if (((TextBox)c).Tag.ToString() != null) //tarkistetaan ettei tag ole null. vaatii että kaikilla textbokseilla on jokin tagi { if (((TextBox)c).Tag.ToString() == "arvo") //tarkistaa onko tagi "arvo" { if (((TextBox)c).Text != String.Empty) { SyotetytArvot s = new SyotetytArvot(); double g = Convert.ToDouble(((TextBox)c).Text); string n = ((TextBox)c).Name; //otetaan objektin nimi talteen int index = Convert.ToInt32(Regex.Match(n, @"\d+$").Value); //otetaan objektin järjestysnumero nimestä s.syote = g; s.index = index; syotteet.Add(s); } } } } } //Otetaan talteen käyttäjän valitsemat seulat "Seula"-combobokseista foreach (Control c in kiv.seulaArvot.Children) { if (c.GetType() == typeof(ComboBox)) { if (((ComboBox)c).Tag.ToString() != null) { if (((ComboBox)c).Tag.ToString() == "seula") { if (((ComboBox)c).Text != String.Empty) { SeulaTallennus s = new SeulaTallennus(); double se = Convert.ToDouble(((ComboBox)c).Text); string n = ((ComboBox)c).Name; //otetaan objektin nimi talteen int si = Convert.ToInt32(Regex.Match(n, @"\d+$").Value); //otetaan objektin järjestysnumero nimestä s.seularvo = se; //Tallennetaan mikä seula on valittuna s.sijainti = si; //tallennetaan valitun comboboksin sijainti/järjestysluku s.seulansijainti = ((ComboBox)c).SelectedIndex; //Tallennetaan mones seula valittu seula on seulalistasta seulacombot.Add(s); } } } } } //Onko valittuna kuiva- vai pesuseulonta if (kiv.rbPesuseulonta.IsChecked == true) { pesuseulValinta = true; } else { pesuseulValinta = false; } double?jakokerroin = null; int jakoseula = kiv.JakoSeula.SelectedIndex; string jakoseularvo = kiv.JakoSeula.Text; if (kiv.tbJakoKerroin.Text != String.Empty && Double.TryParse(kiv.tbJakoKerroin.Text, out double r) == true) { jakokerroin = Convert.ToDouble(kiv.tbJakoKerroin.Text); } jako.jakokerroin = jakokerroin; jako.jakoseula = jakoseula; jako.jakoseularvo = jakoseularvo; //Otetaan talteen tekstitiedot ohjelman yläosasta foreach (Control c in kiv.tietoarvot.Children) { if (c.GetType() == typeof(TextBox)) { TekstiTiedot t = new TekstiTiedot(); t.otsikko = ((TextBox)c).Name; if (((TextBox)c).Text != String.Empty) { t.tieto = ((TextBox)c).Text; } else { t.tieto = null; } tekstitiedot.Add(t); } } foreach (Control c in kiv.osoitearvot.Children) { if (c.GetType() == typeof(TextBox)) { TekstiTiedot t = new TekstiTiedot(); t.otsikko = ((TextBox)c).Name; if (((TextBox)c).Text != String.Empty) { t.tieto = ((TextBox)c).Text; } else { t.tieto = null; } tekstitiedot.Add(t); } } //Otetaan talteen ohjealueet for (int i = 0; i < 4; i++)//Otetaan ohjealueet talteen yksi kolumni kerrallaan { switch (i) { case 0: int j = 17; foreach (Control c in kiv.ohjeArvot.Children) { if (c.GetType() == typeof(TextBox)) { if (((TextBox)c).Tag.ToString() != null) { if (((TextBox)c).Tag.ToString() == "sisAla") { if (((TextBox)c).Text != String.Empty) { string seulatxt = ((TextBox)c).Text; seulatxt = seulatxt.Replace(".", ","); SeulaLapPros ohj = new SeulaLapPros { index = j, tulos = Convert.ToDouble(seulatxt) }; sisOhjeAla.Add(ohj); } j--; } } } } break; case 1: int k = 17; foreach (Control c in kiv.ohjeArvot.Children) { if (c.GetType() == typeof(TextBox)) { if (((TextBox)c).Tag.ToString() != null) { if (((TextBox)c).Tag.ToString() == "sisYla") { if (((TextBox)c).Text != String.Empty) { string seulatxt = ((TextBox)c).Text; seulatxt = seulatxt.Replace(".", ","); SeulaLapPros ohj = new SeulaLapPros { index = k, tulos = Convert.ToDouble(seulatxt) }; sisOhjeYla.Add(ohj); } k--; } } } } break; case 2: int l = 17; foreach (Control c in kiv.ohjeArvot.Children) { if (c.GetType() == typeof(TextBox)) { if (((TextBox)c).Tag.ToString() != null) { if (((TextBox)c).Tag.ToString() == "uloAla") { if (((TextBox)c).Text != String.Empty) { string seulatxt = ((TextBox)c).Text; seulatxt = seulatxt.Replace(".", ","); SeulaLapPros ohj = new SeulaLapPros { index = l, tulos = Convert.ToDouble(seulatxt) }; uloOhjeAla.Add(ohj); } l--; } } } } break; case 3: int m = 17; foreach (Control c in kiv.ohjeArvot.Children) { if (c.GetType() == typeof(TextBox)) { if (((TextBox)c).Tag.ToString() != null) { if (((TextBox)c).Tag.ToString() == "uloYla") { if (((TextBox)c).Text != String.Empty) { string seulatxt = ((TextBox)c).Text; seulatxt = seulatxt.Replace(".", ","); SeulaLapPros ohj = new SeulaLapPros { index = m, tulos = Convert.ToDouble(seulatxt) }; uloOhjeYla.Add(ohj); } m--; } } } } break; default: break; } } var kaikkilistat = new { nimi = "Actual", data = new List <object>() }; //HUOMIOI TÄMÄ! tässä näkyy se järjestys mistä nämä listat löytyy tiedostosta kaikkilistat.data.Add(seulalista); kaikkilistat.data.Add(syotteet); kaikkilistat.data.Add(seulacombot); kaikkilistat.data.Add(pesuseulValinta); kaikkilistat.data.Add(tekstitiedot); kaikkilistat.data.Add(sisOhjeAla); kaikkilistat.data.Add(sisOhjeYla); kaikkilistat.data.Add(uloOhjeAla); kaikkilistat.data.Add(uloOhjeYla); json = JsonConvert.SerializeObject(kaikkilistat); } return(json); }