private void btnInscription_Click(object sender, EventArgs e)
        {
            DateTime dtDateAbonnement   = new DateTime();
            DateTime dtDateReabonnement = new DateTime();
            var      abonnement         = from unAbonnement in dataContext.Abonnements
                                          where unAbonnement.Id.Equals(cbNomEtPrenomAbonne.SelectedValue)
                                          select unAbonnement.DateAbonnement;

            foreach (var c in abonnement)
            {
                dtDateAbonnement = c;
            }

            if (dtDateAbonnement.Year < DateTime.Now.Year)
            {
                var reabonnement = from unReabonnement in dataContext.Reabonnements
                                   where unReabonnement.IdAbonnement.Equals(cbNomEtPrenomAbonne.SelectedValue)
                                   select unReabonnement.DateRenouvellement;
                foreach (var c in reabonnement)
                {
                    dtDateReabonnement = c;
                }
                if (dtDateReabonnement.Year == DateTime.Now.Year)
                {
                    PartiesJouees partieJouee = new PartiesJouees
                    {
                        Remarque     = tbRemarque.Text,
                        IdAbonnement = cbNomEtPrenomAbonne.SelectedValue.ToString(),
                        DatePartie   = DateTime.Now,
                        Pointage     = int.Parse(nupPointage.Value.ToString()),
                        NoTerrain    = int.Parse(cbTerrains.SelectedValue.ToString())
                    };
                    dataContext.PartiesJouees.InsertOnSubmit(partieJouee);
                    try
                    {
                        dataContext.SubmitChanges();
                        partieDeGolfJoueeBindingSource.DataSource = from unePartie in dataContext.PartiesJouees
                                                                    select new
                        {
                            strIdAbonnement = unePartie.IdAbonnement,
                            intNoTerrains   = unePartie.NoTerrain,
                            strDatePartie   = unePartie.DatePartie.ToShortDateString(),
                            dblPointage     = unePartie.Pointage,
                            strRemarque     = unePartie.Remarque
                        };
                        this.partieDeGolfJoueeDataGridView.Refresh();
                        MessageBox.Show("La partie a été ajoutée.", "Ajout de la partie");
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Impossible de modifier la base de données");
                    }
                }
                else
                {
                    MessageBox.Show("Une partie de golf ne peut pas être inscrite si l'abonné principal est désabonné");
                }
            }
            else
            {
                PartiesJouees partieJouee = new PartiesJouees
                {
                    Remarque     = tbRemarque.Text,
                    IdAbonnement = cbNomEtPrenomAbonne.SelectedValue.ToString(),
                    DatePartie   = DateTime.Now,
                    Pointage     = int.Parse(nupPointage.Value.ToString()),
                    NoTerrain    = int.Parse(cbTerrains.SelectedValue.ToString())
                };
                dataContext.PartiesJouees.InsertOnSubmit(partieJouee);
                try
                {
                    dataContext.SubmitChanges();
                    MessageBox.Show("La partie a été ajoutée.", "Ajout de la partie");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Impossible de modifier la base de données");
                }
            }
        }
예제 #2
0
        private void btnInscriptionPartie_Click(object sender, EventArgs e)
        {
            //ajouter la partie jouer
            Boolean       booTrouver     = false;
            PartiesJouees nouvellePartie = new PartiesJouees();


            //requete qui me permet d'aller chercher tout les personnes qui ont besoin de se reabonneee


            var abonnementReabonnee = (from abonnement in dataContext.Abonnements
                                       where !abonnement.Reabonnements.Any()
                                       where DateTime.Now > abonnement.DateAbonnement.AddYears(1)
                                       select new
            {
                idAbonneePrincipal = abonnement.Id,
                idNomEtPrenom = abonnement.Id + "-" + abonnement.Nom + ", " + abonnement.Prenom
            }).Union(from abonnement in dataContext.Abonnements
                     where abonnement.Reabonnements.Any()
                     where abonnement.Reabonnements.All(x => DateTime.Now > x.DateRenouvellement.AddYears(1))
                     select new
            {
                idAbonneePrincipal = abonnement.Id,
                idNomEtPrenom      = abonnement.Id + "-" + abonnement.Nom + ", " + abonnement.Prenom
            });


            foreach (var abonne in abonnementReabonnee)// tous les abonnemetn qui nont pas ete reabonnee
            {
                if (abonne.idNomEtPrenom.Equals(cbAbonnement.Text.ToString()))
                {
                    booTrouver = true;
                }
            }



            if (booTrouver)
            {
                MessageBox.Show("Vous ne pouvez pas inscrire une partie à un abonnement qui ne s'est pas réabonné.", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                nouvellePartie.IdAbonnement = cbAbonnement.SelectedValue.ToString();
                nouvellePartie.Terrains     = (from terrain in dataContext.Terrains
                                               where terrain.Nom == cbTerrain.SelectedValue.ToString()
                                               select terrain).FirstOrDefault();
                nouvellePartie.DatePartie = DateTime.Now;

                nouvellePartie.Pointage = Convert.ToInt32(ndPointage.Value);
                try
                {
                    dataContext.SubmitChanges(ConflictMode.ContinueOnConflict);
                    MessageBox.Show("La partie à été ajouté!", "Ajout", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (ChangeConflictException)
                {
                    dataContext.ChangeConflicts.ResolveAll(RefreshMode.KeepCurrentValues);
                    MessageBox.Show("La valeur de la base de donnée est gardée!", "Ajout", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Erreur lors de l'ajout");
                }



                //MessageBox.Show("Id : " + cbAbonnement.SelectedValue.ToString() + "\nterrain : " + cbTerrain.SelectedValue.ToString() + "\ndate du jour : " + DateTime.Now + "\nPointage : " + ndPointage.Value);
            }
        }