示例#1
0
        private void Button4_Click(object sender, EventArgs e)
        {
            if (listBox1.SelectedIndex != -1)
            {
                if (MessageBox.Show("Really want to delete the nutrient?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    try
                    {
                        Tapanyag t = (Tapanyag)listBox1.SelectedItem;

                        //élelmiszerek dictinoray-ből is törölni kell a tápanyagot
                        foreach (Elelmiszer item in ABKezelo.Kiolvasas().Where(x => x is Elelmiszer))
                        {
                            item.TapanyagTartalom.Remove(t);
                            ABKezelo.Modositas(item);
                        }

                        string nev = t.Megnevezes;
                        ABKezelo.Torol(t);
                        Logolas.Ment("Nutrient deleted, name: " + nev);

                        ListBoxRefresh();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            else
            {
                MessageBox.Show("To delete a nutrient choose one!", "Attention!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
示例#2
0
        public static void Init()
        {
            try
            {
                string fnevhash = ABKezelo.GetCurrentUser();

                List <EtrendAdat> e  = ABKezelo.Kiolvasas();
                List <EtrendAdat> e0 = new List <EtrendAdat>()
                {
                    new Mertekegyseg(fnevhash, "gram", MertekegysegFajta.weight, 1, true, false),
                    new Mertekegyseg(fnevhash, "milligram", MertekegysegFajta.weight, 0.001, true, false),
                    new Mertekegyseg(fnevhash, "pound", MertekegysegFajta.weight, Konstans.pondToGramm, true, false),
                    new Mertekegyseg(fnevhash, "calorie", MertekegysegFajta.energy, 1, true, false),
                    new Mertekegyseg(fnevhash, "joule", MertekegysegFajta.energy, Konstans.jouleToCalorie, true,
                                     false),
                    new Mertekegyseg(fnevhash, "deciliter", MertekegysegFajta.liquidmeasure, 0.1, true, false),
                    new Mertekegyseg(fnevhash, "liter", MertekegysegFajta.liquidmeasure, 1, true, false),
                    new Penznem(fnevhash, "Forint", "HUF", 1, 0, true, false),
                    new Penznem(fnevhash, "Dollar", "USD", Konstans.dollarToForint, 2, true, false),
                    new Penznem(fnevhash, "Euro", "EUR", Konstans.euroToForint, 2, true, false),
                    new Penznem(fnevhash, "English pound", "GBP", Konstans.fontToForint, 2, true, false)
                };

                int num = 0;
                foreach (EtrendAdat item in e0)
                {
                    int cnt = 0;
                    if (item is Mertekegyseg)
                    {
                        cnt = e.Where(x =>
                                      x is Mertekegyseg &&
                                      (x as Mertekegyseg).Megnevezes == (item as Mertekegyseg).Megnevezes)
                              .Count();
                    }
                    else if (item is Penznem)
                    {
                        cnt = e.Where(x => x is Penznem && (x as Penznem).Megnevezes == (item as Penznem).Megnevezes)
                              .Count();
                    }

                    if (cnt == 0)
                    {
                        ABKezelo.Beszuras(item);
                        num++;
                    }
                    else if (!(item is Penznem))
                    {
                        ABKezelo.Modositas(item);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#3
0
        private void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                if (numericUpDown1.Value <= 0)
                {
                    throw new ArgumentException("The exchange rate should be positive!");
                }

                if (penznem == null)
                {
                    string fnevhash = ABKezelo.GetCurrentUser();
                    string nev      = textBox1.Text.Trim();
                    string kod      = textBox2.Text.Trim().ToUpper();

                    if (nev == "" || nev.Length > 30)
                    {
                        throw new ArgumentException("The name should be non-empty and at most 30 characters length!");
                    }

                    if (kod.Length != 3)
                    {
                        throw new ArgumentException("Currency code should have exactly 3 characters!");
                    }

                    if (ABKezelo.Kiolvasas().Where(x => x is Penznem && (x as Penznem).Megnevezes == nev).ToList().Count != 0)
                    {
                        throw new ArgumentException("We have already a currency with this name!");
                    }

                    penznem = new Penznem(fnevhash, nev, kod,
                                          (double)numericUpDown1.Value, (byte)numericUpDown2.Value, checkBox1.Checked, checkBox2.Checked);
                    ABKezelo.Beszuras(penznem);
                    Logolas.Ment("New currency added, name: " + penznem.Megnevezes);
                }
                else
                {
                    if (!checkBox1.Checked && ABKezelo.Kiolvasas().Where(x => (x is Elelmiszer) && (x as Elelmiszer).Penz.Megnevezes == penznem.Megnevezes).ToList().Count > 0)
                    {
                        throw new ArgumentException("The currency should be usable, because there is a food that is using it!");
                    }

                    penznem.Arfolyam       = (double)numericUpDown1.Value;
                    penznem.TizedesekSzama = (byte)numericUpDown2.Value;
                    penznem.Hasznalhato    = checkBox1.Checked;
                    ABKezelo.Modositas(penznem);
                    Logolas.Ment("Currency modification, name: " + penznem.Megnevezes);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                DialogResult = DialogResult.None;
            }
        }
示例#4
0
        private void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                if (numericUpDown1.Value <= 0)
                {
                    throw new WarningException("The rate should be positive!");
                }

                if (mertekegyseg == null)
                {
                    string fnevhash = ABKezelo.GetCurrentUser();
                    string nev      = textBox1.Text.Trim();

                    if (nev == "" || nev.Length > 30)
                    {
                        throw new WarningException("The name should be non-empty and at most 30 characters!");
                    }

                    if (ABKezelo.Kiolvasas().Where(x => x is Mertekegyseg &&
                                                   (x as Mertekegyseg).Megnevezes == nev).ToList().Count != 0)
                    {
                        throw new WarningException("We have already a unit with that name!");
                    }

                    mertekegyseg = new Mertekegyseg(fnevhash, nev, (MertekegysegFajta)comboBox1.SelectedIndex, (double)numericUpDown1.Value, checkBox1.Checked,
                                                    checkBox2.Checked);
                    ABKezelo.Beszuras(mertekegyseg);
                    Logolas.Ment("New unit added, name: " + mertekegyseg.Megnevezes);
                }
                else
                {
                    mertekegyseg.Hasznalhato = checkBox1.Checked;
                    ABKezelo.Modositas(mertekegyseg);
                    Logolas.Ment("Unit modification, name: " + mertekegyseg.Megnevezes);
                }
            }
            catch (Exception ex)
            {
                if (ex is WarningException)
                {
                    MessageBox.Show(ex.Message, "Attention!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                DialogResult = DialogResult.None;
            }
        }
示例#5
0
        private void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                string       fnevhash = ABKezelo.GetCurrentUser();
                string       mnev     = comboBox1.SelectedItem.ToString();
                Mertekegyseg m        = (Mertekegyseg)ABKezelo.Kiolvasas()
                                        .Where(x => (x is Mertekegyseg) && (x as Mertekegyseg).Megnevezes == mnev).First();

                if (checkBox1.Checked && numericUpDown1.Value > numericUpDown2.Value)
                {
                    throw new ArgumentException("The daily minimum intake should not be less than the maximumu!");
                }

                if (tapanyag == null)
                {
                    string nev = textBox1.Text.Trim();

                    if (nev == "" || nev.Length > 30)
                    {
                        throw new ArgumentException("The name should be non-empty and at most 30 characters length!");
                    }

                    if (ABKezelo.Kiolvasas().Where(x => x is Tapanyag && (x as Tapanyag).Megnevezes == nev).ToList().Count > 0)
                    {
                        throw new ArgumentException("We have already a nutrient with this name!");
                    }

                    tapanyag = new Tapanyag(fnevhash, nev, m, (double)numericUpDown1.Value, (double)numericUpDown2.Value, checkBox1.Checked, checkBox2.Checked);
                    ABKezelo.Beszuras(tapanyag);
                    Logolas.Ment("New nutrient added, name: " + tapanyag.Megnevezes);
                    ABKezelo.BeszurTapanyagElelmiszerekbe(tapanyag);
                }
                else
                {
                    tapanyag.NapiMinBevitel = (double)numericUpDown1.Value;
                    tapanyag.NapiMaxBevitel = (double)numericUpDown2.Value;
                    tapanyag.NapiMax        = checkBox1.Checked;
                    tapanyag.Hasznalhato    = checkBox2.Checked;
                    ABKezelo.Modositas(tapanyag);
                    Logolas.Ment("Nutrient modification, name: " + tapanyag.Megnevezes);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                DialogResult = DialogResult.None;
            }
        }
示例#6
0
 private void Button1_Click(object sender, EventArgs e)
 {
     if (listBox1.SelectedIndex != -1)
     {
         try
         {
             Elelmiszer el = (listBox1.SelectedItem as Elelmiszer);
             el.Hasznalhato = true;
             ABKezelo.Modositas(el);
             listBoxRefresh();
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
 }
示例#7
0
        private void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                string fnev = ABKezelo.GetCurrentUser();
                int    i, j, k;
                int    p = 0, q = 0;
                for (i = 0; i < 2; i++)
                {
                    for (j = 0; j < 4; j++)
                    {
                        for (k = 0; k < 2; k++)
                        {
                            EtkezesFeltetel etk = new EtkezesFeltetel(fnev, (ElelmiszerTipus2)i, (EtkezesTipus2)j,
                                                                      (Szamlalo)k, (double)numericUpDowns[p].Value, checkBoxs[q].Checked,
                                                                      (double)numericUpDowns[p + 1].Value);
                            p += 2;
                            q++;
                            ABKezelo.Torol(etk);
                            ABKezelo.Beszuras(etk);
                        }
                    }
                }

                EtrendIdopont et = new EtrendIdopont(fnev, new List <DateTime>(3));
                for (i = 0; i < 3; i++)
                {
                    et.Datum.Add(new DateTime(2018, 1, 1, (int)numericUpDowns2[2 * i].Value,
                                              (int)numericUpDowns2[2 * i + 1].Value, 0));
                }

                if (ABKezelo.Kiolvasas().Where(x => x is EtrendIdopont).ToList().Count > 0)
                {
                    ABKezelo.Modositas(et);
                }
                else
                {
                    ABKezelo.Beszuras(et);
                }
                Logolas.Ment("Saved diet conditions.");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#8
0
        private void Button5_Click(object sender, EventArgs e)
        {
            try
            {            // elképzelhető, hogy nincs hálózat
                XmlDocument xmlDocument = new XmlDocument();
                xmlDocument.Load(Konstans.ekb_bank_xml_link);

                XmlNodeList nodes = xmlDocument.SelectNodes("//*[@currency]");

                Dictionary <string, double> dict = new Dictionary <string, double>();

                dict.Add("EUR", 1);                //triviális árfolyam

                if (nodes != null)
                {
                    foreach (XmlNode node in nodes)
                    {
                        string str      = node.Attributes["currency"].Value.ToUpper();
                        double arfolyam = Convert.ToDouble(Decimal.Parse(node.Attributes["rate"].Value, NumberStyles.Any, new CultureInfo("en-Us")));
                        dict.Add(str, arfolyam);
                    }
                }

                if (!dict.ContainsKey("HUF"))
                {
                    throw new ArgumentException("Synchronization is unsuccessful!");
                }

                foreach (Penznem item in ABKezelo.Kiolvasas().Where(x => x is Penznem).ToList())
                {
                    if (dict.ContainsKey(item.PenzKod))
                    {
                        item.Arfolyam = dict["HUF"] / dict[item.PenzKod];
                        ABKezelo.Modositas(item);
                    }
                }

                ListBoxRefresh();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#9
0
        void EtrendFeltetelMentes()
        {
            try
            {
                string fnevhash = ABKezelo.GetCurrentUser();

                Penznem p = (Penznem)ABKezelo.Kiolvasas().Where(x => (x is Penznem) && (x as Penznem).Megnevezes == comboBox3.SelectedItem.ToString()).First();

                EtrendFeltetel e = new EtrendFeltetel(fnevhash, dateTimePicker1.Value, (EtkezesTipus)comboBox1.SelectedIndex, dateTimePicker2.Value, (EtkezesTipus)comboBox2.SelectedIndex, checkBox1.Checked, checkBox2.Checked, (double)numericUpDown1.Value, p, checkBox3.Checked, checkBox4.Checked, (int)numericUpDown2.Value, (int)numericUpDown3.Value, checkBox5.Checked);

                if (ABKezelo.Kiolvasas().Where(x => x is EtrendFeltetel).ToList().Count == 0)
                {
                    ABKezelo.Beszuras(e);
                }
                else
                {
                    ABKezelo.Modositas(e);
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#10
0
        private void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                string fnevhash = ABKezelo.GetCurrentUser();

                if (comboBox1.SelectedIndex != (int)ElelmiszerTipus.menu && checkBox2.Checked &&
                    numericUpDown5.Value > numericUpDown6.Value)
                {
                    throw new WarningException("The maximal consumption should not be less than the minimal!");
                }

                if (elelmiszer == null)
                {
                    string nev = textBox1.Text.Trim();

                    if (nev == "" || nev.Length > 30)
                    {
                        throw new WarningException("The name should be non-empty and at most 30 characters!");
                    }
                    if (elelmiszerek.Where(x => x.Megnevezes == nev).ToList().Count > 0)
                    {
                        throw new WarningException("You already have a food with this name!");
                    }
                    int         i;
                    List <bool> fogyaszthato = new List <bool> {
                        checkBox3.Checked, checkBox4.Checked, checkBox5.Checked
                    };

                    double ar = (double)numericUpDown2.Value;

                    Penznem penz = penznemek.Where(p => p.Megnevezes == comboBox2.SelectedItem.ToString()).First();

                    Mertekegyseg mertek1    = mertekegysegek.Where(m => m.Megnevezes == comboBox3.SelectedItem.ToString()).First();
                    double       mennyiseg1 = (double)numericUpDown3.Value;

                    Mertekegyseg mertek2    = mertekegysegek.Where(m => m.Megnevezes == comboBox4.SelectedItem.ToString()).First();
                    double       mennyiseg2 = (double)numericUpDown4.Value;

                    //étel
                    Elelmiszer el = null;
                    switch ((ElelmiszerTipus)comboBox1.SelectedIndex)
                    {
                    case ElelmiszerTipus.meal:
                    {
                        el = new Etel(fnevhash, textBox1.Text.Trim(),
                                      (byte)numericUpDown1.Value,
                                      penz,
                                      ar,
                                      checkBox1.Checked,
                                      fogyaszthato,
                                      checkBox6.Checked,
                                      checkBox7.Checked,
                                      new Dictionary <Tapanyag, double>(),
                                      mennyiseg1,
                                      (double)numericUpDown5.Value,
                                      (double)numericUpDown6.Value,
                                      checkBox2.Checked,
                                      mertek1);
                        break;
                    }

                    //ital
                    case ElelmiszerTipus.drink:
                    {
                        el = new Ital(fnevhash, textBox1.Text.Trim(),
                                      (byte)numericUpDown1.Value,
                                      penz,
                                      ar,
                                      checkBox1.Checked,
                                      fogyaszthato,
                                      checkBox6.Checked,
                                      checkBox7.Checked,
                                      new Dictionary <Tapanyag, double>(),
                                      mennyiseg2,
                                      (double)numericUpDown5.Value,
                                      (double)numericUpDown6.Value,
                                      checkBox2.Checked,
                                      mertek2);
                        break;
                    }

                    //menü
                    case ElelmiszerTipus.menu:
                    {
                        el = new Menu(fnevhash, textBox1.Text.Trim(),
                                      (byte)numericUpDown1.Value,
                                      penz,
                                      ar,
                                      checkBox1.Checked,
                                      fogyaszthato,
                                      checkBox6.Checked,
                                      checkBox7.Checked,
                                      new Dictionary <Tapanyag, double>(),
                                      (byte)numericUpDown7.Value,
                                      1,
                                      mertek1,
                                      1,
                                      mertek2,
                                      new Dictionary <Elelmiszer, double>(),
                                      checkBox8.Checked);
                        break;
                    }
                    }

                    foreach (Tapanyag item in ABKezelo.Kiolvasas().Where(x => x is Tapanyag).ToList())
                    {
                        el.TapanyagTartalom.Add(item, 0);
                    }

                    for (i = 0; i < labelek.Count(); i++)
                    {
                        string   str = labelek[i].Text.Remove(labelek[i].Text.Length - 1);
                        double   m   = (double)szamlalok[i].Value;
                        Tapanyag t   = tapanyagok.Where(x => x.Megnevezes == str).First();
                        el.TapanyagTartalom[t] = m;
                    }

                    if (el is Menu)
                    {
                        bool van = false;
                        for (i = 0; i < labelek3.Count; i++)
                        {
                            string str = labelek3[i].Text.Remove(labelek3[i].Text.Length - 1);
                            double m   = (double)szamlalok3[i].Value;
                            if (m > 0)
                            {
                                van = true;
                            }
                            Elelmiszer el2 = elelmiszerek.Where(x => x.Megnevezes == str).First();
                            (el as Menu).Osszetevo.Add(el2, m);
                        }

                        if (!van)
                        {
                            throw new WarningException("There is no meal/drink with positive mass/volume!");
                        }
                    }
                    ABKezelo.Beszuras(el);
                    Logolas.Ment("New food added, name: " + el.Megnevezes);
                }
                else
                {
                    elelmiszer.Orom = (byte)numericUpDown1.Value;
                    elelmiszer.Ar   = (double)numericUpDown2.Value;
                    string pnev = comboBox2.SelectedItem.ToString();
                    elelmiszer.Penz = penznemek.Where(x => x.Megnevezes == pnev).First();
                    elelmiszer.EgysegTobbszorose = checkBox1.Checked;
                    elelmiszer.Fogyaszthato      = new List <bool>()
                    {
                        checkBox3.Checked,
                        checkBox4.Checked,
                        checkBox5.Checked
                    };
                    elelmiszer.Valtozatossag = checkBox6.Checked;
                    elelmiszer.Hasznalhato   = checkBox7.Checked;

                    int i;
                    for (i = 0; i < labelek.Count; i++)
                    {
                        string   tnev = labelek[i].Text.Remove(labelek[i].Text.Length - 1);
                        Tapanyag t    = tapanyagok.Where(x => x.Megnevezes == tnev).First();
                        elelmiszer.TapanyagTartalom[t] = (double)szamlalok[i].Value;
                    }

                    if (elelmiszer is Etel)
                    {
                        (elelmiszer as Etel).TomegMertek.Megnevezes = comboBox3.SelectedItem.ToString();
                        (elelmiszer as Etel).EgysegTomegMennyiseg   = (double)numericUpDown3.Value;
                        (elelmiszer as Etel).MinTomeg  = (double)numericUpDown5.Value;
                        (elelmiszer as Etel).MaxTomeg  = (double)numericUpDown6.Value;
                        (elelmiszer as Etel).MaxTomegE = checkBox2.Checked;
                    }
                    else if (elelmiszer is Ital)
                    {
                        (elelmiszer as Ital).Urmertek.Megnevezes       = comboBox4.SelectedItem.ToString();
                        (elelmiszer as Ital).EgysegUrTartalomMennyiseg = (double)numericUpDown4.Value;
                        (elelmiszer as Ital).MinUrTartalom             = (double)numericUpDown5.Value;
                        (elelmiszer as Ital).MaxUrTartalom             = (double)numericUpDown6.Value;
                        (elelmiszer as Ital).MaxUrTartalomE            = checkBox2.Checked;
                    }
                    else if (elelmiszer is Menu)
                    {
                        (elelmiszer as Menu).TomegMertek.Megnevezes    = comboBox3.SelectedItem.ToString();
                        (elelmiszer as Menu).EgysegTomegMennyiseg      = (double)numericUpDown3.Value;
                        (elelmiszer as Menu).Urmertek.Megnevezes       = comboBox4.SelectedItem.ToString();
                        (elelmiszer as Menu).EgysegUrTartalomMennyiseg = (double)numericUpDown4.Value;
                        (elelmiszer as Menu).MaxDarab = (byte)numericUpDown7.Value;

                        (elelmiszer as Menu).Osszetevo = new Dictionary <Elelmiszer, double>();

                        double total = 0;
                        for (i = 0; i < labelek3.Count; i++)
                        {
                            string     str = labelek3[i].Text.Remove(labelek3[i].Text.Length - 1);
                            Elelmiszer el2 = elelmiszerek.Where(x => x.Megnevezes == str).First();
                            double     m   = (double)szamlalok3[i].Value;
                            if (m > 0)
                            {
                                (elelmiszer as Menu).Osszetevo.Add(el2, m);
                                total += m;
                            }
                        }

                        if (total == 0)
                        {
                            throw new WarningException("The unit should be positive");
                        }
                    }
                    ABKezelo.Modositas(elelmiszer);
                    Logolas.Ment("Food modification, name: " + elelmiszer.Megnevezes);
                }
            }
            catch (Exception ex)
            {
                if (ex is WarningException)
                {
                    MessageBox.Show(ex.Message, "Attention!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                DialogResult = DialogResult.None;
            }
        }
示例#11
0
        public static void XMLRead(string filename, bool check = false, string hash = null, bool msg = true)
        {
            try
            {
                if (File.Exists(filename))
                {
                    List <ABHiba> hibak = new List <ABHiba>();
                    XDocument     xml   = XDocument.Load(filename);

                    List <Penznem> penznemek =
                        (from p in xml.Root.Elements("Penznem")
                         select new Penznem(p)).ToList();

                    List <EtrendAdat> e = new List <EtrendAdat>();
                    foreach (Penznem item in penznemek)
                    {
                        if (check && item.FelhasznaloNevHash != hash)
                        {
                            throw new ArgumentException("Other user saved this, you have no right to use it!");
                        }

                        e.Add(item);
                    }
                    hibak.AddRange(ABKezelo.Csoportosbeszuras(Csere(e, hash)));

                    e = new List <EtrendAdat>();
                    List <Mertekegyseg> mertekegysegek =
                        (from m in xml.Root.Elements("Mertekegyseg")
                         select new Mertekegyseg(m)).ToList();
                    foreach (Mertekegyseg item in mertekegysegek)
                    {
                        e.Add(item);
                    }
                    hibak.AddRange(ABKezelo.Csoportosbeszuras(Csere(e, hash)));


                    e = new List <EtrendAdat>();
                    List <Tapanyag> tapanyagok =
                        (from t in xml.Root.Elements("Tapanyag") select new Tapanyag(t, mertekegysegek)).ToList();
                    foreach (Tapanyag item in tapanyagok)
                    {
                        e.Add(item);
                    }
                    hibak.AddRange(ABKezelo.Csoportosbeszuras(Csere(e, hash)));


                    e = new List <EtrendAdat>();
                    List <Etel> etelek = (from etel in xml.Root.Elements("Etel") select new Etel(etel, penznemek, mertekegysegek)).ToList();
                    foreach (Etel item in etelek)
                    {
                        e.Add(item);
                    }
                    hibak.AddRange(ABKezelo.Csoportosbeszuras(Csere(e, hash)));

                    e = new List <EtrendAdat>();
                    List <Ital> italok = (from ital in xml.Root.Elements("Ital") select new Ital(ital, penznemek, mertekegysegek)).ToList();
                    foreach (Ital item in italok)
                    {
                        e.Add(item);
                    }
                    hibak.AddRange(ABKezelo.Csoportosbeszuras(Csere(e, hash)));

                    e = new List <EtrendAdat>();
                    List <Menu> menuk = (from menu in xml.Root.Elements("Menu") select new Menu(menu, penznemek, mertekegysegek)).ToList();
                    foreach (Menu item in menuk)
                    {
                        e.Add(item);
                    }
                    hibak.AddRange(ABKezelo.Csoportosbeszuras(Csere(e, hash)));


                    e = new List <EtrendAdat>();
                    List <ElelmiszerTapanyag> elelmiszertapanyag =
                        (from et in xml.Root.Elements("ElelmiszerTapanyag") select new ElelmiszerTapanyag(et, tapanyagok)).ToList();


                    List <Elelmiszer> elelmiszerek = new List <Elelmiszer>();
                    foreach (Etel item in etelek)
                    {
                        elelmiszerek.Add(item);
                    }
                    foreach (Ital item in italok)
                    {
                        elelmiszerek.Add(item);
                    }
                    foreach (Tapanyag t in tapanyagok)
                    {
                        ABKezelo.BeszurTapanyagElelmiszerekbe((Tapanyag)Csere(t, hash), elelmiszerek);
                    }


                    foreach (Elelmiszer item in ABKezelo.Kiolvasas().Where(x => x is Elelmiszer).ToList())
                    {
                        foreach (ElelmiszerTapanyag item2 in elelmiszertapanyag.Where(x => x.ElelmiszerMegnevezes == item.Megnevezes).ToList())
                        {
                            item.TapanyagTartalom[item2.Tapanyag] = item2.Ertek;
                        }
                        ABKezelo.Modositas(item);
                    }

                    elelmiszerek = new List <Elelmiszer>();
                    foreach (Etel item in etelek)
                    {
                        elelmiszerek.Add(item);
                    }
                    foreach (Ital item in italok)
                    {
                        elelmiszerek.Add(item);
                    }

                    e = new List <EtrendAdat>();
                    List <ElelmiszerElelmiszer> elelmiszerelelmiszer =
                        (from et in xml.Root.Elements("ElelmiszerElelmiszer") select new ElelmiszerElelmiszer(et, elelmiszerek)).ToList();

                    foreach (Menu item in menuk)
                    {
                        ABKezelo.BeszurElelmiszerElelmiszerekbe((Elelmiszer)Csere(item, hash));
                    }

                    foreach (Menu item in ABKezelo.Kiolvasas().Where(x => x is Menu).ToList())
                    {
                        foreach (ElelmiszerElelmiszer item2 in elelmiszerelelmiszer.Where(x => x.ElelmiszerMegnevezes == item.Megnevezes).ToList())
                        {
                            item.Osszetevo[item2.Elelmiszer] = item2.Ertek;
                        }
                        ABKezelo.Modositas(item);
                    }

                    EtrendFeltetel etrendfeltetel = (from x in xml.Root.Elements("EtrendFeltetel") select new EtrendFeltetel(x)).ToList().First();
                    ABKezelo.Beszuras(Csere(etrendfeltetel, hash));

                    e = new List <EtrendAdat>();
                    List <EtkezesFeltetel> etkezesfeltetel = (from x in xml.Root.Elements("EtkezesFeltetel") select new EtkezesFeltetel(x)).ToList();
                    foreach (EtkezesFeltetel item in etkezesfeltetel)
                    {
                        e.Add(item);
                    }
                    hibak.AddRange(ABKezelo.Csoportosbeszuras(Csere(e, hash)));

                    var etrendidopont = (from x in xml.Root.Elements("EtrendIdopont") select new EtrendIdopont(x)).ToList();
                    if (etrendidopont.Count > 0)
                    {
                        ABKezelo.Beszuras(Csere(etrendidopont.First(), hash));
                    }

                    if (hibak.Count > 0)
                    {
                        string szoveg = "";
                        foreach (ABHiba item in hibak)
                        {
                            szoveg += item + " " + item.Hibas + Environment.NewLine;
                        }

                        throw new Exception(szoveg);
                    }

                    if (msg)
                    {
                        MessageBox.Show("Successful import!", "Info!", MessageBoxButtons.OK,
                                        MessageBoxIcon.Information);
                        Logolas.Ment("Successful XML import!");
                    }
                }
                else
                {
                    throw new FileNotFoundException("Not existing file!");
                }
            }
            catch (Exception ex)
            {
                if (msg)
                {
                    Logolas.Ment("Unsuccessful XML import!");
                }
                throw ex;
            }
        }
示例#12
0
文件: Menu.cs 项目: gerbicz/MenuMaker
        public void update()
        {
            try
            {
                int     i  = 0;
                double  ar = 0;
                Penznem p  = null;

                List <Mertekegyseg> mertekegysegek = new List <Mertekegyseg>();
                List <Tapanyag>     tapanyagok     = new List <Tapanyag>();

                var e = ABKezelo.Kiolvasas().ToList();
                foreach (EtrendAdat item in e)
                {
                    if (item is Mertekegyseg)
                    {
                        mertekegysegek.Add((Mertekegyseg)item);
                    }
                    else if (item is Tapanyag)
                    {
                        tapanyagok.Add((Tapanyag)item);
                    }
                }

                double       tomeg    = 0;
                Mertekegyseg m1       = mertekegysegek.Where(x => x.Megnevezes == "gram").First();
                double       urmertek = 0;
                Mertekegyseg m2       = mertekegysegek.Where(x => x.Megnevezes == "liter").First();

                Dictionary <Tapanyag, double> dict = new Dictionary <Tapanyag, double>();
                foreach (Tapanyag item in tapanyagok)
                {
                    dict.Add(item, 0);
                }

                foreach (KeyValuePair <Elelmiszer, double> item in Osszetevo)
                {
                    if (i == 0)
                    {
                        p = item.Key.Penz;
                    }
                    i++;

                    if (item.Key is Etel)
                    {
                        tomeg += item.Value * (item.Key as Etel).TomegMertek.Valtoszam;
                        ar    += item.Value / (item.Key as Etel).EgysegTomegMennyiseg * item.Key.Ar / p.Arfolyam * item.Key.Penz.Arfolyam;
                    }
                    else
                    {
                        urmertek += item.Value * (item.Key as Ital).Urmertek.Valtoszam;
                        ar       += item.Value / (item.Key as Ital).EgysegUrTartalomMennyiseg * item.Key.Ar / p.Arfolyam * item.Key.Penz.Arfolyam;
                    }

                    foreach (Tapanyag item2 in tapanyagok)
                    {
                        if (!item2.Hasznalhato)
                        {
                            continue;
                        }

                        double val;
                        if (item.Key is Etel)
                        {
                            val = item.Value / (item.Key as Etel).EgysegTomegMennyiseg;
                        }
                        else
                        {
                            val = item.Value / (item.Key as Ital).EgysegUrTartalomMennyiseg;
                        }

                        val         *= item.Key.TapanyagTartalom[item2];
                        dict[item2] += val;
                    }
                }

                EgysegTomegMennyiseg      = tomeg;
                TomegMertek               = m1;
                EgysegUrTartalomMennyiseg = urmertek;
                Urmertek = m2;

                if (Arszamitas)
                {
                    Ar   = ar;
                    Penz = p;
                }

                TapanyagTartalom = dict;
                ABKezelo.Modositas(this);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }