示例#1
0
        public void AjouterVote(int idSondage, int idResto, int idUtilisateur)
        {
            Vote vote = new Vote();
            /*On récupère le sondage*/
            Sondage sondage = bdd.Sondages.FirstOrDefault(x => x.Id == idSondage);

            if (sondage == null)
            {
                return;
            }

            /*On récupère le resto*/
            vote.Resto = bdd.Restos.FirstOrDefault(x => x.Id == idResto);
            if (vote.Resto == null)
            {
                return;
            }
            /*On récupère l'utilisateur*/
            vote.Utilisateur = bdd.Utilisateurs.FirstOrDefault(x => x.Id == idUtilisateur);
            if (vote.Utilisateur == null)
            {
                return;
            }

            /*On sauvegarde*/
            bdd.Sondages.FirstOrDefault(x => x.Id == idSondage).Votes.Add(vote);
            bdd.SaveChanges();
        }
示例#2
0
 public int CreerUnSondage()
 {
     Sondage sondage = new Sondage {Date = DateTime.Now };
     bdd.Sondages.Add(sondage);
     bdd.SaveChanges();
     return sondage.Id;
 }
示例#3
0
        public void AjouterVote(int idSondage, int idRestaurant, int idUtilisateur)
        {
            Utilisateur user  = bdd.Utilisateurs.Find(idUtilisateur);
            Resto       resto = bdd.Restos.Find(idRestaurant);

            Vote NouveaVote = new Vote {
                Resto = resto, Utilisateur = user
            };

            bdd.Votes.Add(NouveaVote);
            bdd.SaveChanges();

            Sondage sondage = bdd.Sondages.Find(idSondage);

            if (sondage != null)
            {
                if (sondage.Votes == null)
                {
                    sondage.Votes = new List <Vote>();
                }

                sondage.Votes.Add(NouveaVote);
                bdd.SaveChanges();
            }
        }
示例#4
0
        public List <Resultats> ObtenirLesResultats(int idSondage)
        {
            List <Resultats> resultats = new List <Resultats>();
            List <Resto>     restos    = ObtientTousLesRestaurants();
            //Sondage sondage = ObtientSondage(idSondage);
            //List<Vote> votes = sondage.Votes;
            //for (int i=0; i<restos.Count; i++)
            //{
            //    Resultats resultat = new Resultats { Nom = restos[i].Nom, Telephone = restos[i].Telephone };
            //    int count = 0;
            //    for(int j =0;j<votes.Count; j++)
            //    {
            //        if(votes[j].Resto.Nom == resultat.Nom)
            //        {
            //            count++;
            //        }
            //    }
            //    resultat.NombreDeVotes = count;
            //    resultats.Add(resultat);
            //}
            //resultats.Sort((a, b) => (a.NombreDeVotes.CompareTo(b.NombreDeVotes)));
            //resultats.Reverse();
            Sondage sondage = bdd.Sondages.First(s => s.Id == idSondage);

            foreach (IGrouping <int, Vote> grouping in sondage.Votes.GroupBy(v => v.Resto.Id))
            {
                int   idRestaurant  = grouping.Key;
                Resto resto         = restos.First(r => r.Id == idRestaurant);
                int   nombreDeVotes = grouping.Count();
                resultats.Add(new Resultats {
                    Nom = resto.Nom, Telephone = resto.Telephone, NombreDeVotes = nombreDeVotes
                });
            }
            return(resultats);
        }
示例#5
0
        public List <Resultats> ObtenirLesResultats(int idSondage)
        {
            List <Resultats> liste = new List <Resultats>();

            Sondage sondage = bdd.Sondages.FirstOrDefault(x => x.Id == idSondage);

            if (sondage != null)
            {
                foreach (Vote vote in sondage.Votes)
                {
                    Resultats res = liste.FirstOrDefault(x => x.Nom == vote.Resto.Nom && x.Telephone == vote.Resto.Telephone);
                    if (res != null)
                    {
                        res.NombreDeVotes++;
                    }
                    else
                    {
                        res               = new Resultats();
                        res.Nom           = vote.Resto.Nom;
                        res.Telephone     = vote.Resto.Telephone;
                        res.NombreDeVotes = 1;

                        liste.Add(res);
                    }
                }
            }

            //liste.OrderBy(x => x.Nom);

            return(liste);
        }
示例#6
0
        /*
         * public Utilisateur ObtenirUtilisateur(string idStr)
         * {
         *  switch (idStr)
         *  {
         *      case "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36":
         *          return CreeOuRecupere("Nico", "1234");
         *      case "Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1":
         *          return CreeOuRecupere("Jérémie", "1234");
         *      case "Firefox":
         *          return CreeOuRecupere("Delphine", "1234");
         *      default:
         *          return CreeOuRecupere("Timéo", "1234");
         *  }
         * }
         *
         *
         * private Utilisateur CreeOuRecupere(string nom, string motDePasse)
         * {
         *  Utilisateur utilisateur = Authentifier(nom, motDePasse);
         *  if (utilisateur == null)
         *  {
         *      int id = AjouterUtilisateur(nom, motDePasse);
         *      return ObtenirUtilisateur(id);
         *  }
         *  return utilisateur;
         * }
         */

        #endregion

        #region Sondage

        public int NouveauSondage()
        {
            int idSondage = 0;

            if (!bdd.Sondages.Count().Equals(0) && bdd.Sondages.Where(o => o.Votes.Count().Equals(0)).Count() > 0)
            {
                idSondage = bdd.Sondages.Where(o => o.Votes.Count().Equals(0)).FirstOrDefault().Id;
            }
            else
            {
                idSondage = bdd.Sondages.Where(o => o.Votes.Count() > 0).FirstOrDefault().Id;
            }


            if (idSondage.Equals(0))
            {
                var NouveauSondage = new Sondage {
                    Date = DateTime.Now.Date
                };
                bdd.Sondages.Add(NouveauSondage);
                bdd.SaveChanges();

                idSondage = NouveauSondage.Id;
            }

            return(idSondage);
        }
示例#7
0
        public int CreerUnSondage()
        {
            Sondage sondage = bdd.Sondages.Add(new Sondage {
                Date = DateTime.Now
            });

            bdd.SaveChanges();
            return(sondage.Id);
        }
示例#8
0
        public int CreerUnSondage()
        {
            Sondage NewSondage = new Sondage {
                Date = DateTime.Now
            };

            bdd.Sondages.Add(NewSondage);
            bdd.SaveChanges();
            return(NewSondage.Id);
        }
示例#9
0
        public int CreerUnSondage()
        {
            var Son = new Sondage {
            };

            Son.Date  = DateTime.Now;
            Son.Votes = new List <Vote>();
            bdd.Sondages.Add(Son);
            bdd.SaveChanges();
            return(Son.Id);
        }
示例#10
0
        public void AjouterVote(int idSondage, int idResto, int idUtilisateur)
        {
            Vote vote = new Vote
            {
                Resto       = listeDesRestaurants.First(r => r.Id == idResto),
                Utilisateur = listeDesUtilisateurs.First(u => u.Id == idUtilisateur)
            };
            Sondage sondage = listeDessondages.First(s => s.Id == idSondage);

            sondage.Votes.Add(vote);
        }
示例#11
0
        public bool ADejaVote(int idSondage, string idStr)
        {
            Utilisateur utilisateur = ObtenirUtilisateur(idStr);

            if (utilisateur == null)
            {
                return(false);
            }
            Sondage sondage = listeDessondages.First(s => s.Id == idSondage);

            return(sondage.Votes.Any(v => v.Utilisateur.Id == utilisateur.Id));
        }
示例#12
0
        public int VerifSondage()
        {
            var     date          = DateTime.Now;
            var     dateAddOneDay = date.AddDays(1);
            Sondage sondage       = bdd.Sondages.FirstOrDefault(elt => elt.Date <dateAddOneDay && date> elt.Date);

            if (sondage == null)
            {
                return(CreerUnSondage());
            }
            return(sondage.Id);
        }
示例#13
0
        public bool ADejaVoteBis(int idSondage, string idStr)
        {
            var utilisateur = ObtenirUtilisateur(idStr);

            if (utilisateur != null)
            {
                Sondage sondage = bdd.Sondages.First(s => s.Id == idSondage);
                if (sondage.Votes == null)
                {
                    return(false);
                }
                return(sondage.Votes.Any(v => v.Utilisateur != null && v.Utilisateur.Id == utilisateur.Id));
            }
            return(false);
        }
示例#14
0
        public bool ADejaVote(int idSondage, string idUtilisateurString)
        {
            int id;

            if (int.TryParse(idUtilisateurString, out id))
            {
                Sondage sondage = bdd.Sondages.First(s => s.Id == idSondage);
                if (sondage.Votes == null)
                {
                    return(false);
                }
                return(sondage.Votes.Any(v => v.Utilisateur != null && v.Utilisateur.Id == id));
            }
            return(false);
        }
示例#15
0
 public int CreerUnSondage()
 {
     try
     {
         Sondage sondage = new Sondage {
             Date = DateTime.Now, Votes = null
         };
         bdd.Sondages.Add(sondage);
         bdd.SaveChanges();
         return(sondage.Id);
     }
     catch (Exception e)
     {
         return(0);
     }
 }
示例#16
0
        public void AjouterVote(int idSondage, int idResto, int idUtilisateur)
        {
            Vote vote = new Vote
            {
                Resto       = bdd.Restos.First(r => r.Id == idResto),
                Utilisateur = bdd.Utilisateurs.First(u => u.Id == idUtilisateur)
            };
            Sondage sondage = bdd.Sondages.First(s => s.Id == idSondage);

            if (sondage.Votes == null)
            {
                sondage.Votes = new List <Vote>();
            }
            sondage.Votes.Add(vote);
            bdd.SaveChanges();
        }
示例#17
0
        public bool ADejaVote(int idSondage, string idUser)
        {
            int  id;
            bool isNumeric = int.TryParse(idUser, out id);

            if (isNumeric)
            {
                Sondage sondage = bdd.Sondages.First(s => s.Id == idSondage);
                if (sondage.Votes == null)
                {
                    return(false);
                }
                return(sondage.Votes.Any(v => v.Utilisateur != null && v.Utilisateur.Id == Int32.Parse(idUser)));
            }
            return(false);
        }
示例#18
0
        public void AjouterVote(int idSondage, int idRestaurant, int idUtilisateur)
        {
            Sondage sondage = bdd.Sondages.FirstOrDefault(elt => elt.Id == idSondage);
            Vote    vote    = new Vote()
            {
                Restaurant  = ObtenirTousLesRestaurants().FirstOrDefault(elt => elt.Id == idRestaurant),
                Utilisateur = ObtenirUtilisateur(idUtilisateur)
            };

            if (sondage.Votes == null)
            {
                sondage.Votes = new List <Vote>();
            }
            sondage.Votes.Add(vote);
            bdd.SaveChanges();
        }
示例#19
0
        public List <Resultats> ObtenirLesResultats(int idSondage)
        {
            List <Resto>     restaurants = ObtientTousLesRestaurants();
            List <Resultats> resultats   = new List <Resultats>();
            Sondage          sondage     = listeDessondages.First(s => s.Id == idSondage);

            foreach (IGrouping <int, Vote> grouping in sondage.Votes.GroupBy(v => v.Resto.Id))
            {
                int   idRestaurant  = grouping.Key;
                Resto resto         = restaurants.First(r => r.Id == idRestaurant);
                int   nombreDeVotes = grouping.Count();
                resultats.Add(new Resultats {
                    Nom = resto.Nom, Telephone = resto.Telephone, NombreDeVotes = nombreDeVotes
                });
            }
            return(resultats);
        }
示例#20
0
        public bool ADejaVote(int idSondage, string idStr)
        {
            int id;

            if (!int.TryParse(idStr, out id))
            {
                return(false);
            }

            Sondage sondage = bdd.Sondages.FirstOrDefault(x => x.Id == idSondage);

            if (sondage.Votes.Where(x => x.Utilisateur.Id == id).ToList().Count > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#21
0
        public bool ADejaVote(int idSondage, string idUtilisateur)
        {
            Utilisateur utilisateur = ObtenirUtilisateur(idUtilisateur);

            if (utilisateur == null)
            {
                return(false);
            }
            //Sondage sondage = bdd.Sondages.FirstOrDefault(elt => elt.Id == idSondage && elt.Votes.FirstOrDefault(vo => vo.Utilisateur == utilisateur) != null);
            Sondage sondage = bdd.Sondages.FirstOrDefault(elt => elt.Id == idSondage);

            if (sondage != null && sondage.Votes == null)
            {
                return(false);
            }
            else
            {
                return(sondage.Votes.Any(elt => elt.Utilisateur == utilisateur));
            }
        }
示例#22
0
        /*
         * public bool ADejaVote(int idSondage, string idStr)
         * {
         *  Utilisateur utilisateur = ObtenirUtilisateur(idStr);
         *  //_logger.LogInformation("Uti Id : " + utilisateur.Id);
         *
         *  if (utilisateur != null)
         *  {
         *      Sondage sondage = bdd.Sondages.Where(s => s.Id == idSondage).Include("Votes.Utilisateur").FirstOrDefault();
         *      // _logger.LogInformation("AjouterVote  : " + sondage.Votes.Count());
         *      if (sondage.Votes == null)
         *          return false;
         *
         *      return sondage.Votes.Any(v => v.Utilisateur != null && v.Utilisateur.Id == utilisateur.Id);
         *  }
         *  return false;
         * }
         */

        #endregion

        #region Resultat
        public List <Resultats> ObtenirLesResultats(int idSondage)
        {
            List <Resultats> lstResultat = new List <Resultats>();
            Sondage          sondage     = bdd.Sondages.Where(s => s.Id == idSondage)
                                           .Include("Votes.Resto")
                                           .FirstOrDefault();
            List <Vote> lstVote = sondage.Votes;

            var resultat = lstVote.GroupBy(vt => vt.Resto)
                           .Select(group => new { Resto = group.Key, Items = group.ToList() })
                           .ToList();

            foreach (var item in resultat)
            {
                lstResultat.Add(new Resultats {
                    Nom = item.Resto.Nom, Telephone = item.Resto.Telephone, NombreDeVotes = item.Items.Count
                });
            }

            return(lstResultat);
        }
示例#23
0
        public int CreerUnSondage()
        {
            Sondage sondage = new Sondage();

            sondage.Date  = DateTime.Now;
            sondage.Votes = new List <Vote>();
            int count = bdd.Sondages.Count();

            bdd.Sondages.Add(sondage);
            bdd.SaveChanges();
            int id = count + 1;

            if (id != bdd.Sondages.Count())
            {
                return(0);
            }
            else
            {
                return(id);
            }
        }
示例#24
0
        public List <Resultats> ObtenirLesResultats(int idSondage)
        {
            Sondage          sondage        = bdd.Sondages.FirstOrDefault(elt => elt.Id == idSondage);
            List <Resultats> listeResultats = new List <Resultats>();

            foreach (Restaurant resto in ObtenirTousLesRestaurants())
            {
                int count = sondage.Votes.Count(elt => elt.Restaurant.Id == resto.Id);
                if (count > 0)
                {
                    listeResultats.Add(new Resultats()
                    {
                        NombreDeVotes = count,
                        Nom           = resto.Nom,
                        Telephone     = resto.Telephone
                    });
                }
            }

            return(listeResultats);
        }
示例#25
0
        public bool ADejaVote(int idSondage, string userName)
        {
            bool result = false;

            if (!userName.Equals(String.Empty))
            {
                Utilisateur user = ObtenirUtilisateur(userName);
                //_logger.LogInformation("User " + bdd.Sondages.Find(idSondage).Votes.Count());
                if (user != null)
                {
                    Sondage sondage = bdd.Sondages.Where(s => s.Id == idSondage).Include("Votes.Utilisateur").FirstOrDefault();
                    // _logger.LogInformation("AjouterVote  : " + sondage.Votes.Count());
                    if (sondage.Votes == null)
                    {
                        return(false);
                    }

                    return(sondage.Votes.Any(v => v.Utilisateur != null && v.Utilisateur.Id == user.Id));
                }
            }

            return(result);
        }
示例#26
0
文件: Dal.cs 项目: gBusato/Projects
 public int CreerUnSondage()
 {
     Sondage sondage = new Sondage();
     _bdd.Sondages.Add(sondage);
     _bdd.SaveChanges();
     return sondage.Id;
 }