Example #1
0
        public void Import2Ucenika(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog
            {
                Title            = "Please Select a File",
                InitialDirectory = @"C\:Desktop",
                Filter           = "XML datoteke (*.xml)|*.xml|All files (*.*)|*.*",
                FileName         = ""
            };

            if (dialog.ShowDialog() == DialogResult.OK)
            {
                IEnumerator enumerator = null;

                string  fileName = dialog.FileName.ToString();
                DataSet set      = new DataSet();
                set.ReadXml(fileName);

                if (set.Tables[0] == null || set.Tables[1] == null)
                {
                    Interaction.MsgBox("XML datoteka za importiranje učenika, nije pravilno formatirana!", MsgBoxStyle.OkOnly, null);
                    return;
                }

                Ucenik[] ucenikArray = new Ucenik[set.Tables[1].Rows.Count + 1];
                int      index       = 0;
                try
                {
                    SqlClient client = new SqlClient();
                    int       id_ucenik;
                    try
                    {
                        id_ucenik = (int)client.ExecuteScalar("Select Max(IDUCENIK + 1) From UCENIK");
                    }
                    catch
                    {
                        id_ucenik = 1;
                    }

                    enumerator = set.Tables[1].Rows.GetEnumerator();

                    string   razred, odjeljenje, timeString;
                    DateTime dateVal;
                    var      usCulture = "en-US";

                    try
                    {
                        razred     = dialog.SafeFileName.Split('.')[0].ToString();
                        odjeljenje = dialog.SafeFileName.Split('.')[1].ToString();
                    }
                    catch
                    {
                        Interaction.MsgBox("Nije moguće odrediti Razred i odjeljenje!", MsgBoxStyle.OkOnly, null);
                        return;
                    }

                    while (enumerator.MoveNext())
                    {
                        DataRow current = (DataRow)enumerator.Current;

                        if (current["A"].ToString() == "Ime" && current["B"].ToString() == "Prezime")
                        {
                            continue;
                        }

                        ucenikArray[index].sifra   = Conversions.ToString(DBNullToString(id_ucenik, "-"));
                        ucenikArray[index].ime     = Conversions.ToString(DBNullToString(current["A"], "-"));
                        ucenikArray[index].prezime = Conversions.ToString(DBNullToString(current["B"], "-"));
                        ucenikArray[index].SPOL    = Conversions.ToString(DBNullToString(current["L"], "-"));

                        ucenikArray[index].oib  = Conversions.ToString(DBNullToString(current["C"], "-"));
                        ucenikArray[index].JMBG = Conversions.ToString(DBNullToString("-", "-"));


                        timeString = current["D"].ToString().Split(' ')[0];

                        dateVal = DateTime.Parse(timeString, new CultureInfo(usCulture, false));

                        ucenikArray[index].DATUMRODJ = dateVal;

                        ucenikArray[index].raz = razred;
                        ucenikArray[index].odj = odjeljenje;

                        ucenikArray[index].ULICAIBROJ    = string.Empty;
                        ucenikArray[index].NASELJE       = string.Empty;
                        ucenikArray[index].POSTANSKIBROJ = "0";

                        index++;
                        id_ucenik++;
                    }

                    UCENIKDataAdapter adapter = new UCENIKDataAdapter();
                    UCENIKDataSet     dataSet = new UCENIKDataSet();
                    int num2 = ucenikArray.Length - 1;
                    index = 0;
                    while (index <= num2)
                    {
                        if (ucenikArray[index].sifra != null)
                        {
                            DataRow row = dataSet.UCENIK.NewRow();
                            try
                            {
                                row["iducenik"]             = ucenikArray[index].sifra;
                                row["prezimeucenik"]        = ucenikArray[index].prezime;
                                row["imeucenik"]            = ucenikArray[index].ime;
                                row["oibucenik"]            = ucenikArray[index].oib;
                                row["razred"]               = ucenikArray[index].raz;
                                row["odjeljenje"]           = ucenikArray[index].odj;
                                row["SPOLUCENIKA"]          = ucenikArray[index].SPOL;
                                row["ULICAIBROJ"]           = ucenikArray[index].ULICAIBROJ;
                                row["NASELJE"]              = ucenikArray[index].NASELJE;
                                row["JMBGUCENIKA"]          = ucenikArray[index].JMBG;
                                row["DATUMRODJENJAUCENIKA"] = ucenikArray[index].DATUMRODJ;
                                row["POSTANSKIBROJ"]        = ucenikArray[index].POSTANSKIBROJ;
                                row["IMERODITELJA"]         = "";

                                dataSet.UCENIK.Rows.Add(row);
                            }
                            catch (System.Exception exception1)
                            {
                                throw exception1;
                            }
                        }

                        index++;
                    }

                    adapter.Update(dataSet);

                    Interaction.MsgBox("Prebačeno: " + set.Tables[1].Rows.Count + " učenika", MsgBoxStyle.OkOnly, null);
                }
                catch (System.Exception exception)
                {
                    new Mipsed7.Emailing.SendException(exception).Send();
                    Interaction.MsgBox(exception.Message, MsgBoxStyle.OkOnly);
                }
                finally
                {
                    if (enumerator is IDisposable)
                    {
                        (enumerator as IDisposable).Dispose();
                    }
                }
            }
        }
Example #2
0
        public void ImportUcenika(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog
            {
                Title            = "Please Select a File",
                InitialDirectory = @"C\:Desktop",
                Filter           = "XML datoteke (*.xml)|*.xml|All files (*.*)|*.*",
                FileName         = ""
            };

            if (dialog.ShowDialog() == DialogResult.OK)
            {
                IEnumerator enumerator           = null;
                IEnumerator enumeratorOdjeljenje = null;

                string  fileName = dialog.FileName.ToString();
                DataSet set      = new DataSet();
                set.ReadXml(fileName);

                if (set.Tables[0] == null || set.Tables[3] == null)
                {
                    Interaction.MsgBox("XML datoteka za importiranje učenika, nije pravilno formatirana!", MsgBoxStyle.OkOnly, null);
                    return;
                }

                Ucenik[] ucenikArray = new Ucenik[set.Tables[3].Rows.Count + 1];
                int      index       = 0;
                try
                {
                    if (set.Tables[0].Columns["Textbox36"] == null)
                    {
                        throw new System.Exception("XML datoteka ne sadrži informaciju RAZREDA i ODJELJENJA!");
                    }

                    enumerator           = set.Tables[3].Rows.GetEnumerator();
                    enumeratorOdjeljenje = set.Tables[0].Rows.GetEnumerator();

                    string razred, odjeljenje;

                    enumeratorOdjeljenje.MoveNext();
                    DataRow currentOdjeljenje = (DataRow)enumeratorOdjeljenje.Current;
                    string  strData           = currentOdjeljenje["Textbox36"].ToString();


                    // parsiramo string
                    if (strData.Contains(". razred osnovne škole, odjeljenje:"))
                    {
                        razred     = strData.Substring(0, strData.IndexOf(". razred osnovne škole")).Trim();
                        odjeljenje = strData.Substring(strData.IndexOf(":") + 1, strData.Length - strData.IndexOf(":") - 1).Trim();
                    }
                    else if (strData.Contains(". razred srednje škole, odjeljenje:"))
                    {
                        razred     = strData.Substring(0, strData.IndexOf(". razred srednje škole")).Trim();
                        odjeljenje = strData.Substring(strData.IndexOf(":") + 1, strData.Length - strData.IndexOf(":") - 1).Trim();
                    }
                    else
                    {
                        // nije prošlo niti jedno parsiranje
                        throw new System.Exception("eMatica - XML datoteka // Nepoznati format podatka '" + currentOdjeljenje["Textbox36"] + "'");
                    }

                    while (enumerator.MoveNext())
                    {
                        DataRow current = (DataRow)enumerator.Current;

                        ucenikArray[index].sifra   = Conversions.ToString(DBNullToString(current["ucenik_id"], "-"));
                        ucenikArray[index].ime     = Conversions.ToString(DBNullToString(current["ime"], "-"));
                        ucenikArray[index].prezime = Conversions.ToString(DBNullToString(current["prezime"], "-"));
                        ucenikArray[index].SPOL    = Conversions.ToString(DBNullToString(current["Spol"], "-"));

                        // 5? - "XXI/4581"?? -> Matični broj?

                        ucenikArray[index].oib  = Conversions.ToString(DBNullToString(current["OIB"], "-"));
                        ucenikArray[index].JMBG = Conversions.ToString(DBNullToString(current["JMBG"], "-"));

                        // 9? - "Hrvatska"??

                        ucenikArray[index].DATUMRODJ = Conversions.ToDate(DBNullToString(current["DatumRodjenja"], "-"));

                        // Matija Božičević - 21.09.2012
                        // eMatica je mijenjala shemu XML-a
                        ucenikArray[index].raz = razred;
                        ucenikArray[index].odj = odjeljenje;

                        ucenikArray[index].ULICAIBROJ    = string.Empty;
                        ucenikArray[index].NASELJE       = string.Empty;
                        ucenikArray[index].POSTANSKIBROJ = "0"; // NEPOZNATA POŠTA

                        index++;
                    }

                    UCENIKDataAdapter adapter = new UCENIKDataAdapter();
                    UCENIKDataSet     dataSet = new UCENIKDataSet();
                    int num2 = ucenikArray.Length - 1;
                    index = 0;
                    while (index <= num2)
                    {
                        if (ucenikArray[index].sifra != null)
                        {
                            DataRow row = dataSet.UCENIK.NewRow();
                            try
                            {
                                row["iducenik"]             = ucenikArray[index].sifra;
                                row["prezimeucenik"]        = ucenikArray[index].prezime;
                                row["imeucenik"]            = ucenikArray[index].ime;
                                row["oibucenik"]            = ucenikArray[index].oib;
                                row["razred"]               = ucenikArray[index].raz;
                                row["odjeljenje"]           = ucenikArray[index].odj;
                                row["SPOLUCENIKA"]          = ucenikArray[index].SPOL;
                                row["ULICAIBROJ"]           = ucenikArray[index].ULICAIBROJ;
                                row["NASELJE"]              = ucenikArray[index].NASELJE;
                                row["JMBGUCENIKA"]          = ucenikArray[index].JMBG;
                                row["DATUMRODJENJAUCENIKA"] = ucenikArray[index].DATUMRODJ;
                                row["POSTANSKIBROJ"]        = ucenikArray[index].POSTANSKIBROJ;
                                row["IMERODITELJA"]         = "";

                                dataSet.UCENIK.Rows.Add(row);
                            }
                            catch (System.Exception exception1)
                            {
                                throw exception1;
                            }
                        }

                        index++;
                    }

                    adapter.Update(dataSet);

                    Interaction.MsgBox("Prebačeno: " + Conversions.ToString(index) + " učenika", MsgBoxStyle.OkOnly, null);
                }
                catch (System.Exception exception)
                {
                    new Mipsed7.Emailing.SendException(exception).Send();
                    Interaction.MsgBox(exception.Message, MsgBoxStyle.OkOnly);
                }
                finally
                {
                    if (enumerator is IDisposable)
                    {
                        (enumerator as IDisposable).Dispose();
                    }
                }
            }
        }