当前位置: 首页>>代码示例>>C#>>正文


C# IDataContext.Save方法代码示例

本文整理汇总了C#中IDataContext.Save方法的典型用法代码示例。如果您正苦于以下问题:C# IDataContext.Save方法的具体用法?C# IDataContext.Save怎么用?C# IDataContext.Save使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IDataContext的用法示例。


在下文中一共展示了IDataContext.Save方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: RecalculatePoints

        public void RecalculatePoints(IDataContext dataContext, IPointsCalculator pointsCalculator, List<PlayedGameToRecalculate> playedGamesToRecalculate)
        {
            int counter = 0;
            foreach (var playedGame in playedGamesToRecalculate)
            {
                var playerRanks = playedGame.PlayerGameResults.Select(x => new PlayerRank
                {
                    PlayerId = x.PlayerId,
                    GameRank = x.GameRank
                }).ToList();

                var newPoints = pointsCalculator.CalculatePoints(playerRanks, playedGame.BoardGameGeekGameDefinition);

                var applicationUserForThisGamingGroup = new ApplicationUser()
                {
                    CurrentGamingGroupId = playedGame.GamingGroupId
                };

                foreach (var playerGameResult in playedGame.PlayerGameResults)
                {
                    var scorecard = newPoints[playerGameResult.PlayerId];
                    playerGameResult.NemeStatsPointsAwarded = scorecard.BasePoints;
                    playerGameResult.GameDurationBonusPoints = scorecard.GameDurationBonusPoints;
                    playerGameResult.GameWeightBonusPoints = scorecard.GameWeightBonusPoints;
                    dataContext.Save(playerGameResult, applicationUserForThisGamingGroup);
                }

                Debug.WriteLine("{0} games updated... last PlayedGame.Id is {1}", ++counter, playedGame.PlayedGameId);
            }
        }
开发者ID:NemeStats,项目名称:NemeStats,代码行数:30,代码来源:GlobalPointsRecalculator.cs

示例2: btnOK_Click

        // TODO: Dodaj provere i validaciju.
        private void btnOK_Click(object sender, EventArgs e)
        {
            try
            {
                DataAccessProviderFactory factory = new DataAccessProviderFactory();
                dataContext = factory.GetDataContext();
                dataContext.BeginTransaction();

                takmicenje.ZrebZaFinalePoSpravama = textBox1.Text.Trim();
                dataContext.Save(takmicenje);
                dataContext.Commit();
            }
            catch (Exception ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                MessageDialogs.showError(
                    Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
                this.DialogResult = DialogResult.Cancel;
            }
            finally
            {
                if (dataContext != null)
                    dataContext.Dispose();
                dataContext = null;
            }
        }
开发者ID:stankela,项目名称:bilten,代码行数:28,代码来源:ZrebForm.cs

示例3: dodajPenalizacijuToolStripMenuItem_Click

        private void dodajPenalizacijuToolStripMenuItem_Click(object sender, EventArgs e)
        {
            IList<RezultatEkipno> rezultatiEkipe = dataGridViewUserControl1.getSelectedItems<RezultatEkipno>();
            if (rezultatiEkipe.Count != 1)
                return;
            RezultatEkipno rezultat = rezultatiEkipe[0];

            PenalizacijaForm form = new PenalizacijaForm(rezultat, takmicenje);
            if (form.ShowDialog() != DialogResult.OK)
                return;

            if (form.Penalizacija.Trim() == String.Empty)
                rezultat.addPenalty(null);
            else
                rezultat.addPenalty(float.Parse(form.Penalizacija));
            // Posto se ekipni poredak svaki put nanovo kreira iz ocena, moram
            // da zapamtim penalizaciju u ekipi (metod Poredak.create koristi Ekipa.Penalty)
            rezultat.Ekipa.Penalty = rezultat.Penalty;

            try
            {
                DataAccessProviderFactory factory = new DataAccessProviderFactory();
                dataContext = factory.GetDataContext();
                dataContext.BeginTransaction();

                dataContext.Save(rezultat.Ekipa);
                if (deoTakKod == DeoTakmicenjaKod.Takmicenje1)
                {
                    ActiveTakmicenje.Takmicenje1.PoredakEkipno.calculatePoredak(ActiveTakmicenje);
                    dataContext.Save(ActiveTakmicenje.Takmicenje1.PoredakEkipno);
                }
                else
                {
                    ActiveTakmicenje.Takmicenje4.Poredak.calculatePoredak(ActiveTakmicenje);
                    dataContext.Save(ActiveTakmicenje.Takmicenje4.Poredak);
                }
                dataContext.Commit();
            }
            catch (Exception ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                MessageDialogs.showError(Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
                Close();
                return;
            }
            finally
            {
                if (dataContext != null)
                    dataContext.Dispose();
                dataContext = null;
            }

            dataGridViewUserControl1.setItems<RezultatEkipno>(
                ActiveTakmicenje.getPoredakEkipno(deoTakKod).getRezultati());
            dataGridViewUserControl1.setSelectedItem<RezultatEkipno>(rezultat);
        }
开发者ID:stankela,项目名称:bilten,代码行数:57,代码来源:RezultatiEkipeForm.cs

示例4: promeniKvalStatus

        private void promeniKvalStatus(KvalifikacioniStatus kvalStatus)
        {
            RezultatUkupno rez = dataGridViewUserControl1.getSelectedItem<RezultatUkupno>();
            if (rez == null || rez.KvalStatus == kvalStatus)
                return;

            string msg = String.Empty;
            if (kvalStatus != KvalifikacioniStatus.None)
            {
                string msgFmt = "Da li zelite da oznacite sa \"{1}\" gimnasticara \"{0}\"?";
                msg = String.Format(msgFmt, rez.Gimnasticar, kvalStatus);
            }
            else
            {
                string msgFmt = "Da li zelite da ponistite oznaku \"{1}\" za gimnasticara \"{0}\"?";
                msg = String.Format(msgFmt, rez.Gimnasticar, rez.KvalStatus);
            }
            if (!MessageDialogs.queryConfirmation(msg, this.Text))
                return;

            try
            {
                DataAccessProviderFactory factory = new DataAccessProviderFactory();
                dataContext = factory.GetDataContext();
                dataContext.BeginTransaction();

                rez.KvalStatus = kvalStatus;
                dataContext.Save(ActiveTakmicenje.getPoredakUkupno(deoTakKod));
                dataContext.Commit();
            }
            catch (Exception ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                MessageDialogs.showError(Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
                Close();
                return;
            }
            finally
            {
                if (dataContext != null)
                    dataContext.Dispose();
                dataContext = null;
            }

            dataGridViewUserControl1.refreshItems();
            dataGridViewUserControl1.setSelectedItem<RezultatUkupno>(rez);
        }
开发者ID:stankela,项目名称:bilten,代码行数:48,代码来源:RezultatiUkupnoForm.cs

示例5: btnAdd_Click

        private void btnAdd_Click(object sender, EventArgs e)
        {
            DialogResult dlgResult = DialogResult.None;
            SelectGimnasticarUcesnikForm form = null;
            try
            {
                form = new SelectGimnasticarUcesnikForm(
                    ActiveRezTakmicenje.Takmicenje.Id, ActiveRezTakmicenje.Pol,
                    ActiveRezTakmicenje.Kategorija);
                dlgResult = form.ShowDialog();
            }
            catch (InfrastructureException ex)
            {
                MessageDialogs.showError(ex.Message, this.Text);
                return;
            }

            if (dlgResult != DialogResult.OK || form.SelectedEntities.Count == 0)
                return;

            Cursor.Current = Cursors.WaitCursor;
            Cursor.Show();
            bool added = false;
            List<GimnasticarUcesnik> illegalGimnasticari = new List<GimnasticarUcesnik>();
            try
            {
                DataAccessProviderFactory factory = new DataAccessProviderFactory();
                dataContext = factory.GetDataContext();
                dataContext.BeginTransaction();

                dataContext.Attach(ActiveRezTakmicenje, false);
                foreach (GimnasticarUcesnik g in ActiveRezTakmicenje.Takmicenje1.Gimnasticari)
                    dataContext.Attach(g, false);

                foreach (GimnasticarUcesnik g in form.SelectedEntities)
                {
                    if (canAddGimnasticar(ActiveRezTakmicenje, g))
                    {
                        ActiveRezTakmicenje.Takmicenje1.addGimnasticar(g);

                        IList<Ocena> ocene = loadOceneTak1(g);
                        ActiveRezTakmicenje.Takmicenje1
                            .gimnasticarAdded(g, ocene, ActiveRezTakmicenje);
                        added = true;
                    }
                    else
                    {
                        illegalGimnasticari.Add(g);
                    }
                }
                if (added)
                {
                    dataContext.Save(ActiveRezTakmicenje.Takmicenje1);
                    foreach (GimnasticarUcesnik g in ActiveRezTakmicenje.Takmicenje1.Gimnasticari)
                        dataContext.Evict(g);
                    dataContext.Commit();
                }
            }
            catch (InfrastructureException ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                MessageDialogs.showError(ex.Message, this.Text);
                Close();
                return;
            }
            catch (Exception ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                MessageDialogs.showMessage(
                    Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
                Close();
                return;
            }
            finally
            {
                if (dataContext != null)
                    dataContext.Dispose();
                dataContext = null;

                Cursor.Hide();
                Cursor.Current = Cursors.Arrow;
            }

            if (added)
            {
                setGimnasticari(ActiveRezTakmicenje.Takmicenje1.Gimnasticari);
                updateGimnasticariCount();
            }

            if (illegalGimnasticari.Count > 0)
            {
                string msg = "Sledeci gimnasticari nisu dodati: \n\n";
                msg += StringUtil.getListString(illegalGimnasticari.ToArray());
                //       MessageDialogs.showMessage(msg, this.Text);
            }
        }
开发者ID:stankela,项目名称:bilten,代码行数:98,代码来源:TakmicariTakmicenjaForm.cs

示例6: btnNewGroup_Click

        private void btnNewGroup_Click(object sender, EventArgs e)
        {
            // TODO: Dodaj brisanje grupa (razmisli da li samo poslednje ili bilo koje)
            // Takodje, kada se promeni grupa, proveri da li je grupa ostala prazna i
            // pitaj da li treba da se izbrise

            if (ActiveRaspored == null)
                return;
            string msg = "Da li zelite da dodate nov turnus?";
            if (!MessageDialogs.queryConfirmation(msg, this.Text))
                return;
            if (!ActiveRaspored.canAddNewGrupa())
            {
                string fmt = "Nije moguce dodati nov turnus zato sto je poslednji " +
                    "turnus (turnus {0}) prazan.";
                MessageDialogs.showMessage(
                    String.Format(fmt, ActiveRaspored.getBrojGrupa()), this.Text);
                return;
            }

            bool added = false;
            try
            {
                DataAccessProviderFactory factory = new DataAccessProviderFactory();
                dataContext = factory.GetDataContext();
                dataContext.BeginTransaction();

                ActiveRaspored.addNewGrupa();
                dataContext.Save(ActiveRaspored);

                dataContext.Commit();
                added = true;
            }
            catch (Exception ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                MessageDialogs.showMessage(
                    Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
            }
            finally
            {
                if (dataContext != null)
                    dataContext.Dispose();
                dataContext = null;
            }

            if (!added)
            {
                Close();
                return;
            }

            int brojGrupa = ActiveRaspored.getBrojGrupa();
            cmbGrupa.Items.Add(brojGrupa);

            updateCombos(brojGrupa, 1);
            onRotacijaChanged();
        }
开发者ID:stankela,项目名称:bilten,代码行数:59,代码来源:StartListeForm.cs

示例7: promeniKlubDrzava

        private void promeniKlubDrzava(bool prikaziKlub)
        {
            DataGridViewUserControl dgw = getActiveSpravaGridGroupUserControl()[clickedSprava]
                .DataGridViewUserControl;
            List<GimnasticarUcesnik> gimnasticari = new List<GimnasticarUcesnik>();
            foreach (NastupNaSpravi n in dgw.getSelectedItems<NastupNaSpravi>())
                gimnasticari.Add(n.Gimnasticar);
            if (gimnasticari.Count == 0)
                return;

            try
            {
                DataAccessProviderFactory factory = new DataAccessProviderFactory();
                dataContext = factory.GetDataContext();
                dataContext.BeginTransaction();

                foreach (GimnasticarUcesnik g in gimnasticari)
                {
                    g.NastupaZaDrzavu = !prikaziKlub;
                    dataContext.Save(g);
                }
                dataContext.Commit();
            }
            catch (Exception ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                MessageDialogs.showMessage(Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
                Close();
                return;
            }
            finally
            {
                if (dataContext != null)
                    dataContext.Dispose();
                dataContext = null;
            }

            NastupNaSpravi n2 = dgw.getSelectedItem<NastupNaSpravi>();
            dgw.refreshItems();
            dgw.setSelectedItem<NastupNaSpravi>(n2);
        }
开发者ID:stankela,项目名称:bilten,代码行数:42,代码来源:StartListeForm.cs

示例8: kreirajPreostaleRotacije

        private void kreirajPreostaleRotacije()
        {
            if (ActiveRaspored == null)
                return;

            /*int finalRot = (takmicenje.Gimnastika == Gimnastika.ZSG) ? 4 : 6;
            string preostaleRot = "2-" + finalRot.ToString();
            string msgFmt = "Da li zelite da kreirate rotacije {0}? Prethodni raspored koji je postojao na rotacijama {0} " +
                "bice izbrisan.";
            if (!MessageDialogs.queryConfirmation(String.Format(msgFmt, preostaleRot), this.Text))
                return;*/

            // Nadji aktivne sprave za rotaciju 1.
            List<Sprava> aktivneSpraveRot1 = new List<Sprava>();
            foreach (Sprava s in Sprave.getSprave(takmicenje.Gimnastika))
            {
                if (ActiveRaspored.getStartLista(s, ActiveGrupa, 1).Nastupi.Count != 0)
                {
                    aktivneSpraveRot1.Add(s);
                }
            }

            SpraveNaRotacijiForm form = null;
            try
            {
                form = new SpraveNaRotacijiForm(takmicenje.Gimnastika, aktivneSpraveRot1);
                if (form.ShowDialog() != DialogResult.OK)
                {
                    return;
                }
            }
            catch (Exception ex)
            {
                MessageDialogs.showError(ex.Message, this.Text);
                return;
            }

            int finalRot = (takmicenje.Gimnastika == Gimnastika.ZSG) ? 4 : 6;
            for (int rot = 2; rot <= finalRot; rot++)
            {
                kreirajRotaciju(rot, form.AktivneSprave);
            }

            Cursor.Current = Cursors.WaitCursor;
            Cursor.Show();
            try
            {
                DataAccessProviderFactory factory = new DataAccessProviderFactory();
                dataContext = factory.GetDataContext();
                dataContext.BeginTransaction();

                Sprava[] sprave = Sprave.getSprave(takmicenje.Gimnastika);
                for (int i = 2; i <= finalRot; i++)
                {
                    for (int j = 0; j < sprave.Length; j++)
                    {
                        StartListaNaSpravi startLista = ActiveRaspored.getStartLista(sprave[j], ActiveGrupa, i);
                        dataContext.Save(startLista);
                    }
                }
                dataContext.Commit();

                if (ActiveRotacija != 1)
                    setStartListe(ActiveRaspored, ActiveGrupa, ActiveRotacija);
            }
            catch (Exception ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                MessageDialogs.showMessage(
                    Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
                Close();
                return;
            }
            finally
            {
                if (dataContext != null)
                    dataContext.Dispose();
                dataContext = null;

                Cursor.Hide();
                Cursor.Current = Cursors.Arrow;
            }
        }
开发者ID:stankela,项目名称:bilten,代码行数:84,代码来源:StartListeForm.cs

示例9: kreirajNaOsnovuKvalifikanata

        // TODO: Ceo ovaj deo gde se kreira na osnovu kvalifikanata je radjen na brzinu, gde je jedino bilo bitno da moze da
        // se primeni na Memorijal. Trebalo bi ga temeljno proveriti i uciniti robustnijim.
        private void kreirajNaOsnovuKvalifikanata()
        {
            if (ActiveRaspored == null)
            {
                string msg2 = "Morate najpre da kreirate praznu start listu (dugme \"Nova start lista\").";
                MessageDialogs.showMessage(msg2, this.Text);
                return;
            }

            string msg = "Da li zelite da kreirate start listu na osnovu kvalifikanata?";
            if (!MessageDialogs.queryConfirmation(msg, this.Text))
                return;

            List<int> zreb = parseZreb();
            if (zreb == null)
            {
                msg = "Nepravilno unesen zreb za finale.";
                MessageDialogs.showMessage(msg, this.Text);
                return;
            }
            else if (zreb.Count == 0)
            {
                msg = "Nije unesen zreb za start liste. Da li zelite da kreirate start listu bez zreba?";
                if (!MessageDialogs.queryConfirmation(msg, this.Text))
                    return;
            }

            List<TakmicarskaKategorija> kategorije = new List<TakmicarskaKategorija>(ActiveRaspored.Kategorije);
            RezultatskoTakmicenje rezTakmicenje = loadRezTakmicenje(takmicenje.Id, kategorije[0]);
            if (rezTakmicenje == null)
                return;

            Sprava[] sprave = Sprave.getSprave(takmicenje.Gimnastika);
            for (int j = 0; j < sprave.Length; j++)
            {
                StartListaNaSpravi startLista = ActiveRaspored.getStartLista(sprave[j], ActiveGrupa, 1 /*ActiveRotacija*/);
                startLista.clear();

                List<UcesnikTakmicenja3> kvalifikanti = new List<UcesnikTakmicenja3>(
                    rezTakmicenje.Takmicenje3.getUcesniciKvalifikanti(sprave[j]));
                PropertyDescriptor propDesc =
                    TypeDescriptor.GetProperties(typeof(UcesnikTakmicenja3))["QualOrder"];
                kvalifikanti.Sort(new SortComparer<UcesnikTakmicenja3>(propDesc, ListSortDirection.Ascending));

                int k = 0;
                while (k < zreb.Count)
                {
                    if (zreb[k] <= kvalifikanti.Count)
                        startLista.addNastup(new NastupNaSpravi(kvalifikanti[zreb[k] - 1].Gimnasticar, 0));
                    k++;
                }
                k = startLista.Nastupi.Count;
                while (k < kvalifikanti.Count)
                {
                    startLista.addNastup(new NastupNaSpravi(kvalifikanti[k].Gimnasticar, 0));
                    k++;
                }
            }

            Cursor.Current = Cursors.WaitCursor;
            Cursor.Show();
            try
            {
                DataAccessProviderFactory factory = new DataAccessProviderFactory();
                dataContext = factory.GetDataContext();
                dataContext.BeginTransaction();

                for (int j = 0; j < sprave.Length; j++)
                {
                    StartListaNaSpravi startLista = ActiveRaspored.getStartLista(sprave[j], ActiveGrupa, 1 /*ActiveRotacija*/);
                    foreach (NastupNaSpravi n in startLista.Nastupi)
                    {
                        //  potrebno za slucaj kada se u start listi nalaze i gimnasticari iz kategorija razlicitih od kategorija
                        // za koje start lista vazi.

                        // TODO3: Proveri da li ovo (tj. nedostatak ove naredbe na drugim mestima) ima veze sa time sto mi
                        // za start liste ponekad daje gresku, i zbog cega sam morao da u klasi NastupNaSpravi kesiram
                        // Kategoriju.
                        NHibernateUtil.Initialize(n.Gimnasticar.TakmicarskaKategorija);
                    }
                    dataContext.Save(startLista);
                }
                dataContext.Commit();

                setStartListe(ActiveRaspored, ActiveGrupa, 1 /*ActiveRotacija*/);
                getActiveSpravaGridGroupUserControl().clearSelection();
            }
            catch (Exception ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                MessageDialogs.showMessage(
                    Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
                Close();
                return;
            }
            finally
            {
//.........这里部分代码省略.........
开发者ID:stankela,项目名称:bilten,代码行数:101,代码来源:StartListeForm.cs

示例10: btnDelete_Click

        private void btnDelete_Click(object sender, EventArgs e)
        {
            IList<Ocena> selItems = getDataGridViewUserControl()
                .getSelectedItems<Ocena>();
            if (selItems.Count != 1)
                return;

            Ocena ocena = selItems[0];
            string msg = String.Format(
                "Da li zelite da izbrisete ocenu za gimnasticara '{0}', za spravu '{1}'?",
                ocena.Gimnasticar.ImeSrednjeImePrezime, Sprave.toString(ActiveSprava));
            if (!MessageDialogs.queryConfirmation(msg, this.Text))
                return;

            Cursor.Current = Cursors.WaitCursor;
            Cursor.Show();
            try
            {
                try
                {
                    DataAccessProviderFactory factory = new DataAccessProviderFactory();
                    dataContext = factory.GetDataContext();
                    dataContext.BeginTransaction();

                    dataContext.Delete(ocena);

                    IList<RezultatskoTakmicenje> rezTakmicenja = loadRezTakmicenja(ocena.Gimnasticar);
                    foreach (RezultatskoTakmicenje rezTak in rezTakmicenja)
                    {
                        if (deoTakKod == DeoTakmicenjaKod.Takmicenje1)
                        {
                            rezTak.Takmicenje1.ocenaDeleted(ocena, rezTak);
                            dataContext.Save(rezTak.Takmicenje1);
                        }
                        else if (deoTakKod == DeoTakmicenjaKod.Takmicenje2)
                        {
                            if (rezTak.Propozicije.OdvojenoTak2)
                            {
                                rezTak.Takmicenje2.ocenaDeleted(ocena, rezTak);
                                dataContext.Save(rezTak.Takmicenje2);
                            }
                        }
                        else if (deoTakKod == DeoTakmicenjaKod.Takmicenje3)
                        {
                            if (rezTak.Propozicije.OdvojenoTak3)
                            {
                                rezTak.Takmicenje3.ocenaDeleted(ocena, rezTak);
                                dataContext.Save(rezTak.Takmicenje3);
                            }
                        }
                        else if (deoTakKod == DeoTakmicenjaKod.Takmicenje4)
                        {
                            if (rezTak.Propozicije.OdvojenoTak4)
                            {
                                rezTak.Takmicenje4.ocenaDeleted(ocena, rezTak);
                                dataContext.Save(rezTak.Takmicenje4);
                            }
                        }
                    }

                    foreach (RezultatskoTakmicenje rezTak in rezTakmicenja)
                    {
                        if (deoTakKod == DeoTakmicenjaKod.Takmicenje1)
                        {
                            foreach (GimnasticarUcesnik g in rezTak.Takmicenje1.Gimnasticari)
                                dataContext.Evict(g);
                        }
                        else if (deoTakKod == DeoTakmicenjaKod.Takmicenje2)
                        {
                            foreach (UcesnikTakmicenja2 u in rezTak.Takmicenje2.Ucesnici)
                            {
                                if (dataContext.Contains(u.Gimnasticar))
                                    dataContext.Evict(u.Gimnasticar);
                                dataContext.Evict(u);
                            }
                        }
                        else if (deoTakKod == DeoTakmicenjaKod.Takmicenje3)
                        {
                            foreach (UcesnikTakmicenja3 u in rezTak.Takmicenje3.Ucesnici)
                            {
                                if (dataContext.Contains(u.Gimnasticar))
                                    dataContext.Evict(u.Gimnasticar);
                                dataContext.Evict(u);
                            }
                        }
                    }

                    dataContext.Commit();
                }
                catch (Exception ex)
                {
                    if (dataContext != null && dataContext.IsInTransaction)
                        dataContext.Rollback();
                    MessageDialogs.showError(Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
                    Close();
                    return;
                }
                finally
                {
                    if (dataContext != null)
//.........这里部分代码省略.........
开发者ID:stankela,项目名称:bilten,代码行数:101,代码来源:OceneForm.cs

示例11: mnKreirajTakmicenja234_Click

        private void mnKreirajTakmicenja234_Click(object sender, EventArgs e)
        {
            string msg = "Da li zelite da kreirate takmicenja II, III i IV?";
            if (!MessageDialogs.queryConfirmation(msg, "Kreiraj takmicenja II, III i IV"))
                return;

            IDataContext dataContext = null;
            try
            {
                DataAccessProviderFactory factory = new DataAccessProviderFactory();
                dataContext = factory.GetDataContext();
                dataContext.BeginTransaction();

                IList<RezultatskoTakmicenje> rezTakmicenja = loadRezTakmicenja(
                    dataContext, takmicenjeId.Value);
                if (rezTakmicenja.Count == 0)
                    throw new BusinessException("Morate najpre da unesete takmicarske kategorije.");

                Cursor.Current = Cursors.WaitCursor;
                Cursor.Show();

                IList<Ocena> ocene = loadOceneTak1(takmicenjeId.Value);

                foreach (RezultatskoTakmicenje rt in rezTakmicenja)
                {
                    // Ovo je zakomentarisano zato sto je moguce da je poredak rucno promenjen, pa ga ne treba ponovo
                    // kreirati.
                    /*rt.Takmicenje1.PoredakUkupno.create(rt, ocene);
                    foreach (PoredakSprava p in rt.Takmicenje1.PoredakSprava)
                        p.create(rt, ocene);
                    rt.Takmicenje1.PoredakPreskok.create(rt, ocene);*/

                    // TODO3: Zakomentarisi ovo kada budes ponovo uveo da se ekipni poredak automatski azurira.
                    rt.Takmicenje1.PoredakEkipno.create(rt, ocene);

                    if (rt.Propozicije.PostojiTak2)
                    {
                        rt.Takmicenje2.createUcesnici(rt.Takmicenje1);
                        if (rt.Propozicije.OdvojenoTak2)
                            rt.Takmicenje2.Poredak.initRezultati(rt.Takmicenje2.getUcesniciGimKvalifikanti());
                        else
                            rt.Takmicenje2.Poredak.create(rt, ocene);
                    }
                    if (rt.Propozicije.PostojiTak3)
                    {
                        rt.Takmicenje3.createUcesnici(rt.Takmicenje1, rt.Propozicije.KvalifikantiTak3PreskokNaOsnovuObaPreskoka);
                        if (rt.Propozicije.OdvojenoTak3)
                        {
                            foreach (PoredakSprava p in rt.Takmicenje3.Poredak)
                                p.initRezultati(rt.Takmicenje3.getUcesniciGimKvalifikanti(p.Sprava));
                            rt.Takmicenje3.PoredakPreskok.initRezultati(rt.Takmicenje3.getUcesniciGimKvalifikanti(Sprava.Preskok));
                        }
                        else
                        {
                            foreach (PoredakSprava p in rt.Takmicenje3.Poredak)
                                p.create(rt, ocene);
                            rt.Takmicenje3.PoredakPreskok.create(rt, ocene);
                        }
                    }
                    if (rt.Propozicije.PostojiTak4)
                    {
                        /*
                        rt.Takmicenje4.createUcesnici(rt.Takmicenje1);
                        if (rt.Propozicije.OdvojenoTak4)
                            rt.Takmicenje4.Poredak.initRezultati(rt.Takmicenje4.getUcesnici());
                        else
                            rt.Takmicenje4.Poredak.create(rt, ocene);
                         */
                    }

                    dataContext.Save(rt.Takmicenje1);
                    if (rt.Propozicije.PostojiTak2)
                        dataContext.Save(rt.Takmicenje2);
                    if (rt.Propozicije.PostojiTak3)
                        dataContext.Save(rt.Takmicenje3);
                    //if (rt.Propozicije.PostojiTak4)
                      //  dataContext.Save(rt.Takmicenje4);

                    Takmicenje t = dataContext.GetById<Takmicenje>(takmicenjeId.Value);
                    t.ZavrsenoTak1 = true;
                    dataContext.Save(t);

                    mnTakmicenje2.Visible = true;
                    mnTakmicenje3.Visible = true;
                    mnTakmicenje4.Visible = true;
                }

                dataContext.Commit();
            }
            catch (BusinessException ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                MessageDialogs.showMessage(ex.Message, strProgName);
            }
            catch (InfrastructureException ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                MessageDialogs.showError(ex.Message, strProgName);
//.........这里部分代码省略.........
开发者ID:stankela,项目名称:bilten,代码行数:101,代码来源:MainForm.cs

示例12: btnOK_Click

        private void btnOK_Click(object sender, EventArgs e)
        {
            try
            {
                DataAccessProviderFactory factory = new DataAccessProviderFactory();
                dataContext = factory.GetDataContext();
                dataContext.BeginTransaction();

                // TODO: Prvo proveri da li je nesto menjano

                // Proveri da li se sve ekipe sastoje od uzastopnih gimnsticara. Ako ne, sve gimnasticare koji se nalaze
                // izmedju dva clana neke ekipe proglasi za clanove te iste ekipe.
                if (rotacija == 1)
                {
                    byte ekipa = findFragmentedEkipa(startLista);
                    while (ekipa > 0)
                    {
                        kompaktujEkipu(ekipa, startLista);
                        ekipa = findFragmentedEkipa(startLista);
                    }
                }

                dataContext.Save(startLista);
                dataContext.Commit();
            }
            catch (Exception ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                MessageDialogs.showMessage(
                    Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
                this.DialogResult = DialogResult.Cancel;
            }
            finally
            {
                if (dataContext != null)
                    dataContext.Dispose();
                dataContext = null;
            }
        }
开发者ID:stankela,项目名称:bilten,代码行数:40,代码来源:StartListaRotEditorForm.cs

示例13: promeniPoredakPreskok

        private void promeniPoredakPreskok()
        {
            bool obaPreskoka = ActiveTakmicenje.Propozicije.racunajObaPreskoka(deoTakKod, takmicenje.FinaleKupa);
            RazresiIsteOceneForm form = new RazresiIsteOceneForm(istiRezultati, takmicenje, obaPreskoka);
            if (form.ShowDialog() != DialogResult.OK)
                return;

            for (int i = 0; i < istiRezultati.Count; ++i)
            {
                if (!obaPreskoka)
                    istiRezultati[i].Rank = (short)form.Poredak[i];
                else
                    (istiRezultati[i] as RezultatPreskok).Rank2 = (short)form.Poredak[i];
            }

            string rank = (!obaPreskoka) ? "Rank" : "Rank2";
            PropertyDescriptor[] propDesc = new PropertyDescriptor[] {
                TypeDescriptor.GetProperties(typeof(RezultatPreskok))[rank],
                TypeDescriptor.GetProperties(typeof(RezultatPreskok))["PrezimeIme"]
            };
            ListSortDirection[] sortDir = new ListSortDirection[] {
                ListSortDirection.Ascending,
                ListSortDirection.Ascending
            };

            short redBroj = (!obaPreskoka) ? istiRezultati[0].RedBroj : (istiRezultati[0] as RezultatPreskok).RedBroj2.Value;
            istiRezultati.Sort(new SortComparer<RezultatSprava>(propDesc, sortDir));
            foreach (RezultatPreskok r in istiRezultati)
            {
                if (!obaPreskoka)
                    r.RedBroj = redBroj++;
                else
                    r.RedBroj2 = redBroj++;
            }

            try
            {
                DataAccessProviderFactory factory = new DataAccessProviderFactory();
                dataContext = factory.GetDataContext();
                dataContext.BeginTransaction();

                dataContext.Save(ActiveTakmicenje.getPoredakPreskok(deoTakKod));
                dataContext.Commit();
            }
            catch (Exception ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                MessageDialogs.showError(Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
                Close();
                return;
            }
            finally
            {
                if (dataContext != null)
                    dataContext.Dispose();
                dataContext = null;
            }

            string redBrojStr = (!obaPreskoka) ? "RedBroj" : "RedBroj2";
            spravaGridUserControl1.DataGridViewUserControl
                .sort<RezultatPreskok>(redBrojStr, ListSortDirection.Ascending);
            //spravaGridUserControl1.DataGridViewUserControl.refreshItems();
            spravaGridUserControl1.DataGridViewUserControl.setSelectedItem<RezultatPreskok>(
                istiRezultati[0] as RezultatPreskok);
        }
开发者ID:stankela,项目名称:bilten,代码行数:66,代码来源:RezultatiSpravaForm.cs

示例14: okButton_Click

        private void okButton_Click(object sender, System.EventArgs e)
        {
            /*  foreach (PropertyPage page in _pages)
            {
                page.OnApply();
            }*/

            try
            {
                if (_activePage != null && !applyPage(_activePage))
                {
                    DialogResult = DialogResult.None;
                    return;
                }

                DataAccessProviderFactory factory = new DataAccessProviderFactory();
                dataContext = factory.GetDataContext();
                dataContext.BeginTransaction();

                dataContext.Save(takmicenje);

                IDictionary<int, List<RezultatskoTakmicenje>> rezTakMap = new Dictionary<int, List<RezultatskoTakmicenje>>();
                foreach (RezultatskoTakmicenje rt in rezTakmicenja)
                {
                    if (rezTakMap.ContainsKey(rt.TakmicenjeDescription.Id))
                    {
                        rezTakMap[rt.TakmicenjeDescription.Id].Add(rt);
                    }
                    else
                    {
                        List<RezultatskoTakmicenje> rezTakList = new List<RezultatskoTakmicenje>();
                        rezTakList.Add(rt);
                        rezTakMap.Add(rt.TakmicenjeDescription.Id, rezTakList);
                    }
                }
                foreach (List<RezultatskoTakmicenje> rezTakList in rezTakMap.Values)
                {
                    bool kombAdded = false;
                    foreach (RezultatskoTakmicenje rt in rezTakList)
                    {
                        if (!rt.TakmicenjeDescription.Propozicije.JednoTak4ZaSveKategorije)
                        {
                            rt.ImaEkipnoTakmicenje = true;
                            rt.KombinovanoEkipnoTak = false;
                        }
                        else
                        {
                            if (!kombAdded)
                            {
                                rt.ImaEkipnoTakmicenje = true;
                                rt.KombinovanoEkipnoTak = true;
                                kombAdded = true;
                            }
                            else
                            {
                                rt.ImaEkipnoTakmicenje = false;
                                rt.KombinovanoEkipnoTak = false;
                            }
                        }
                    }
                }

                foreach (RezultatskoTakmicenje rt in rezTakmicenja)
                {
                    dataContext.Save(rt.Propozicije);

                    bool deletedTak2, deletedTak3, deletedTak4;

                    rt.updateTakmicenjaFromChangedPropozicije(
                        out deletedTak2, out deletedTak3, out deletedTak4);

                    // TODO: Sledece tri Delete naredbe najverovatnije nemaju efekta zato sto ako je npr. deletedTak2 == true,
                    // tada je rt.Takmicenje2 == null
                    if (deletedTak2)
                        dataContext.Delete(rt.Takmicenje2);
                    if (deletedTak3)
                        dataContext.Delete(rt.Takmicenje3);
                    if (deletedTak4)
                        dataContext.Delete(rt.Takmicenje4);

                    // TODO: Potrebno je ponovo izracunati poretke i ucesnike zato
                    // sto su se mozda promenili brojevi finalista, rezervi, nacin
                    // racunanja preskoka itd.

                    dataContext.Save(rt);
                }

                dataContext.Commit();
            }
            catch (InfrastructureException ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                MessageDialogs.showError(ex.Message, this.Text);
                DialogResult = DialogResult.Cancel;
            }
            catch (Exception ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
//.........这里部分代码省略.........
开发者ID:stankela,项目名称:bilten,代码行数:101,代码来源:PropozicijeForm.cs

示例15: promeniKlubDrzava

        private void promeniKlubDrzava(bool prikaziKlub)
        {
            List<GimnasticarUcesnik> gimnasticari = new List<GimnasticarUcesnik>();
            foreach (RezultatUkupno r in dataGridViewUserControl2.getSelectedItems<RezultatUkupno>())
                gimnasticari.Add(r.Gimnasticar);
            if (gimnasticari.Count == 0)
                return;

            try
            {
                DataAccessProviderFactory factory = new DataAccessProviderFactory();
                dataContext = factory.GetDataContext();
                dataContext.BeginTransaction();

                foreach (GimnasticarUcesnik g in gimnasticari)
                {
                    g.NastupaZaDrzavu = !prikaziKlub;
                    dataContext.Save(g);
                }
                dataContext.Commit();
            }
            catch (Exception ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                MessageDialogs.showMessage(Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
                Close();
                return;
            }
            finally
            {
                if (dataContext != null)
                    dataContext.Dispose();
                dataContext = null;
            }

            RezultatUkupno rez = dataGridViewUserControl2.getSelectedItem<RezultatUkupno>();
            dataGridViewUserControl2.refreshItems();
            dataGridViewUserControl2.setSelectedItem<RezultatUkupno>(rez);
        }
开发者ID:stankela,项目名称:bilten,代码行数:40,代码来源:RezultatiEkipeForm.cs


注:本文中的IDataContext.Save方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。