コード例 #1
0
        public ActionResult DetailsFormation(String nomSeo)
        {
            var vm = new FormationAvecAvisViewModel();

            using (var context = new AvisEntities())
            {
                var FormationEntity = context.Formations
                                      .Where(f => f.NomSeo == nomSeo)
                                      .FirstOrDefault();

                if (FormationEntity == null)
                {
                    return(RedirectToAction("Acceuil", "Home"));
                }

                vm.FormationNom         = FormationEntity.Nom;
                vm.FormationDescription = FormationEntity.Description;
                vm.FormationNomSeo      = nomSeo;
                vm.FormationUrl         = FormationEntity.Url;
                vm.Note       = FormationEntity.Avis.Average(a => a.Note);
                vm.NombreAvis = FormationEntity.Avis.Count();
                vm.Avis       = FormationEntity.Avis.ToList();
            }
            return(View(vm));
        }
コード例 #2
0
 public bool EstAutoriserAcommenter(Avis.Data.Avis avisSave)
 {
     using (var context = new AvisEntities())
     {
         return(!context.Avis.Any(avis => avis.IdFormation == avisSave.IdFormation && avis.UserId == avisSave.UserId));
     }
 }
コード例 #3
0
        public ActionResult LaisserUnAvis(string nSeo)
        {
            Formation formation;

            using (var context = new AvisEntities())
            {
                formation = context.Formations.FirstOrDefault(f => f.NomSeo == nSeo);

                if (formation == null)
                {
                    RedirectToAction("ToutesLesFormations", "Formations");
                }
            }
            AvisManager la      = new AvisManager();
            var         user_id = User.Identity.GetUserId();

            if (!la.IsLimiterLesAvis(user_id, formation.Id))
            {
                LaisserUnAvisViewModel vm = new LaisserUnAvisViewModel();
                vm.formationNseo = nSeo;
                vm.formationName = formation.Nom;
                return(View(vm));
            }


            return(RedirectToAction("DetailsFormation", "Formations", new { nSeo = nSeo }));
        }
コード例 #4
0
        public ActionResult DetailsFormation(string nomSeo)
        {
            var vm = new FormationAvecAvisViewModel();

            using (var context = new AvisEntities())
            {
                var formationEntity = context.Formation.Where(f => f.NomSeo == nomSeo).FirstOrDefault();
                if (formationEntity == null)
                {
                    return(RedirectToAction("Accueil", "Home"));
                }

                vm.FormationNom         = formationEntity.Nom;
                vm.FormationDescription = formationEntity.Description;
                vm.FormationNomSeo      = nomSeo;
                vm.FormationUrl         = formationEntity.Url;
                if (formationEntity.Avis.Count > 0)
                {
                    vm.Note = formationEntity.Avis.Average(a => a.Note);
                }
                vm.NombreAvis = formationEntity.Avis.Count;
                vm.Avis       = formationEntity.Avis.OrderByDescending(a => a.DateAvis).ToList();
            }
            return(View(vm));
        }
コード例 #5
0
        public DetailFormation ObtenirDetailsFormation(string nomSeo)
        {
            DetailFormation detailFormationEntity = null;

            using (var context = new AvisEntities())
            {
                Formation detailEntity = context.Formation.SingleOrDefault(f => f.NomSeo == nomSeo);

                if (detailEntity != null)
                {
                    detailFormationEntity = new DetailFormation(detailEntity)
                    {
                        MoyenneDesVotes = 0, NombreVotant = 0
                    };

                    if (detailEntity.Avis.Any())
                    {
                        detailFormationEntity.MoyenneDesVotes = Math.Round(detailEntity.Avis.Average(a => a.Note), 1);
                        detailFormationEntity.NombreVotant    = detailEntity.Avis.Count();
                        detailFormationEntity.Avis            = detailEntity.Avis.ToList();
                    }
                }
            }
            return(detailFormationEntity);
        }
コード例 #6
0
        public List <DetailAvis> ObtenirTousLesAvis()
        {
            List <DetailAvis> derniersAvisListe = null;

            using (var context = new AvisEntities())
            {
                if (context.Avis.Any())
                {
                    derniersAvisListe = new List <DetailAvis>();
                    var derniersAvis = context.Avis.OrderByDescending(a => a.DateAvis).Take(10).ToList();
                    if (derniersAvis != null)
                    {
                        foreach (Avis.Data.Avis item in derniersAvis)
                        {
                            DetailAvis da = new DetailAvis(item.DateAvis);
                            da.Formation     = new Formation();
                            da.Formation.Nom = item.Formation.Nom;
                            da.Description   = item.Description;
                            da.Nom           = item.Nom;
                            derniersAvisListe.Add(da);
                        }
                    }
                }
            }
            return(derniersAvisListe);
        }
コード例 #7
0
        // GET: Formation
        public ActionResult ToutesLesFormations()
        {
            var vm = new AccueilViewModel();

            //using -->variable de contexte détruite après utilisation
            using (var context = new AvisEntities())
            {
                var listFormation = context.Formation.OrderBy(x => Guid.NewGuid()).ToList();
                foreach (var f in listFormation)
                {
                    var dto = new FormationAvecAvisDto();
                    dto.Formation = f;
                    if (f.Avis.Count == 0)
                    {
                        dto.Note = 0;
                    }
                    else
                    {
                        dto.Note = Math.Round(f.Avis.Average(a => a.Note), 2);
                    }
                    vm.ListFormations.Add(dto);
                }
            }
            return(View(vm));
        }
コード例 #8
0
        public ActionResult Index()
        {
            var vml            = new List <ViewFormationAvisModel>();
            var listFormations = new List <Formation>();

            using (var context = new AvisEntities())
            {
                listFormations = context.Formations.OrderBy(x => Guid.NewGuid()).Take(4).ToList();
                foreach (var l in listFormations)
                {
                    var vm = new ViewFormationAvisModel();
                    vm.id          = l.Id;
                    vm.nom         = l.Nom;
                    vm.url         = l.Url;
                    vm.description = l.Description;
                    vm.nomseo      = l.NomSeo;
                    vm.nombreAvis  = l.Avis.Count();
                    if (l.Avis.Count > 0)
                    {
                        vm.noteFormation = l.Avis.Average(f => f.Note);
                    }
                    else
                    {
                        vm.noteFormation = 0;
                    }
                    vm.avis = l.Avis.ToList();
                    vml.Add(vm);
                }
            }
            return(View(vml));
        }
コード例 #9
0
        //part 2

        public ActionResult DetailsFormation(string nSeo = "none")
        {
            var formation             = new Formation();
            ViewFormationAvisModel vm = new ViewFormationAvisModel();

            using (var context = new AvisEntities())
            {
                formation = context.Formations.Where(f => f.NomSeo == nSeo).FirstOrDefault();
                if (formation == null)
                {
                    RedirectToAction("Index", "Home");
                }
                else
                {
                    vm.id          = formation.Id;
                    vm.nom         = formation.Nom;
                    vm.url         = formation.Url;
                    vm.description = formation.Description;
                    vm.nomseo      = formation.NomSeo;
                    vm.nombreAvis  = formation.Avis.Count();
                    if (formation.Avis.Count > 0)
                    {
                        vm.noteFormation = formation.Avis.Average(f => f.Note);
                    }
                    else
                    {
                        vm.noteFormation = 0;
                    }

                    vm.avis = formation.Avis.ToList();
                }
            }
            return(View(vm));
        }
コード例 #10
0
        public void AjouterUnAvis(string user_ids, string descriptions, string notes, string nSeos)
        {
            PersonManager mgr       = new PersonManager();
            Avi           nouvelAvi = new Avi();

            nouvelAvi.DateAvis    = DateTime.Now;
            nouvelAvi.Description = descriptions;

            nouvelAvi.UserId = user_ids;
            double dNote = 0;

            if (!double.TryParse(notes, out dNote))
            {
                throw new Exception("Parse Invalid");
            }
            else
            {
                nouvelAvi.Note = dNote;
            }
            using (var context = new AvisEntities())
            {
                var formation = context.Formations.FirstOrDefault(f => f.NomSeo == nSeos);
                nouvelAvi.IdFormation = formation.Id;
                nouvelAvi.Nom         = mgr.GetNameByUserId(user_ids);
                context.Avis.Add(nouvelAvi);
                context.SaveChanges();
            }
        }
コード例 #11
0
        //  public ActionResult SaveComment(string commentaire, string nom, string note, string nomSeo)
        public ActionResult SaveComment(SaveCommentViewModel comment)
        {
            Avis nouvelAvis = new Avis
            {
                DateAvis    = DateTime.Now,
                Description = comment.Commentaire,
                Nom         = comment.Nom
            };

            double dNote = 0;

            if (!double.TryParse(comment.Note, NumberStyles.Any, CultureInfo.InvariantCulture, out dNote))
            {
                throw new Exception("Impossible de parser la note " + comment.Note);
            }
            nouvelAvis.Note = dNote;

            using (var context = new AvisEntities())
            {
                var formationEntity = context.Formations
                                      .FirstOrDefault(f => f.NomSeo == comment.NomSeo);

                if (formationEntity == null)
                {
                    return(RedirectToAction("Acceuil", "Home"));
                }

                nouvelAvis.IdFormation = formationEntity.Id;

                context.Avis.Add(nouvelAvis);
                context.SaveChanges();
            }

            return(RedirectToAction("DetailsFormation", "Formation", new { nomSeo = comment.NomSeo }));
        }
コード例 #12
0
 public void AjouterAvis(Avis.Data.Avis avis)
 {
     using (var context = new AvisEntities())
     {
         context.Avis.Add(avis);
         context.SaveChanges();
     }
 }
コード例 #13
0
        // GET: Formations
        //part 1
        public ActionResult ToutesLesFormations()
        {
            var listFormations = new List <Formation>();

            using (var context = new AvisEntities())
            {
                listFormations = context.Formations.ToList();
            }
            return(View(listFormations));
        }
コード例 #14
0
 public string GetNomFromId(string id)
 {
     using (var context = new AvisEntities())
     {
         var personEntity = context.Personne.FirstOrDefault(p => p.Id == id);
         if (personEntity == null)
         {
             return("Anonyme");
         }
         return(personEntity.Nom);
     }
 }
コード例 #15
0
 public bool EstAutoriseACommenter(string userId, int formationId)
 {
     using (var context = new AvisEntities())
     {
         var personEntity = context.Avis.FirstOrDefault(p => p.UserId == userId && p.IdFormation == formationId);
         if (personEntity == null)
         {
             return(true);
         }
         return(false);
     }
 }
コード例 #16
0
 public static bool ObtenirFormation(string nomSeo, out Formation formation)
 {
     formation = null;
     using (var context = new AvisEntities())
     {
         var formationContext = context.Formation.SingleOrDefault(f => string.Compare(f.NomSeo, nomSeo, true) == 0);
         if (formationContext != null)
         {
             formation = formationContext;
             return(true);
         }
         return(false);
     }
 }
コード例 #17
0
        public List <Avis.Data.Avis> ObtenirAvis(int trainingId)
        {
            List <Avis.Data.Avis> TousAvis = null;

            using (var context = new AvisEntities())
            {
                if (context.Avis.Any(a => a.IdFormation == trainingId))
                {
                    TousAvis = new List <Avis.Data.Avis>();
                    TousAvis = context.Avis.Where(a => a.IdFormation == trainingId).ToList();
                }
            }
            return(TousAvis);
        }
コード例 #18
0
        public List <Formation> ObtenirFormations()
        {
            List <Formation> ToutesFormations = null;

            using (var context = new AvisEntities())
            {
                if (context.Formation.Any())
                {
                    ToutesFormations = new List <Formation>();
                    ToutesFormations = context.Formation.ToList();
                }
            }
            return(ToutesFormations);
        }
コード例 #19
0
 public string GetNameByUserId(string user_id)
 {
     using (var context = new AvisEntities())
     {
         var namePerson = context.People.Where(f => f.User_id == user_id).FirstOrDefault();
         if (namePerson == null)
         {
             return("anonyme");
         }
         else
         {
             return(namePerson.Nom);
         }
     }
 }
コード例 #20
0
 public void InsertPersonnalInfo(string id, string nom)
 {
     using (var context = new AvisEntities())
     {
         var personEntity = context.Personne.FirstOrDefault(p => p.Id == id);
         if (personEntity == null)
         {
             var p = new Personne();
             p.Id  = id;
             p.Nom = nom;
             context.Personne.Add(p);
             context.SaveChanges();
         }
     }
 }
コード例 #21
0
 public void InsertNom(string userId, string nom)
 {
     using (var context = new AvisEntities())
     {
         var personEntity = context.Personne.FirstOrDefault(p => p.UserId == userId);
         if (personEntity == null)
         {
             var p = new Personne();
             p.Nom    = nom;
             p.UserId = userId;
             context.Personne.Add(p);
             context.SaveChanges();
         }
     }
 }
コード例 #22
0
        //public ActionResult SaveComment(string commentaire, string nom, string note, string nomSeo)
        public ActionResult SaveComment(SaveCommentViewModel comment)
        {
            using (var context = new AvisEntities())
            {
                var formationEntity = context.Formation.FirstOrDefault(f => f.NomSeo == comment.nomSeo);

                if (formationEntity == null)
                {
                    return(RedirectToAction("Acceuil", "Home"));
                }

                Avis nouvelAvis = new Avis();

                nouvelAvis.DateAvis    = DateTime.Now;
                nouvelAvis.Description = comment.commentaire;

                nouvelAvis.UserId = User.Identity.GetUserId();

                var userId = User.Identity.GetUserId();

                var mgerUnicite = new UniqueAvisVerification();
                if (!mgerUnicite.EstAuthoriseACommenter(userId, formationEntity.Id))
                {
                    TempData["Message"] = "Désolé, vous ne pouvez poster qu'un seul avis par formation";
                    return(RedirectToAction("DetailsFormation", "Formation", new { nomSeo = comment.nomSeo }));
                }

                var mger = new PersonneManager();
                nouvelAvis.Nom = mger.GetNomFromUserId(userId);



                double dNote = 0;

                if (!double.TryParse(comment.note, NumberStyles.Any, CultureInfo.InvariantCulture, out dNote))
                {
                    throw new Exception("impossible de parser la note " + comment.note);
                }

                nouvelAvis.Note = dNote;

                nouvelAvis.IdFormation = formationEntity.Id;
                context.Avis.Add(nouvelAvis);
                context.SaveChanges();
            }

            return(RedirectToAction("DetailsFormation", "Formation", new { nomSeo = comment.nomSeo }));
        }
コード例 #23
0
        public ActionResult LaisserUnAvis(string nomSeo)
        {
            var vm = new LaisserUnAvisViewModel();

            vm.NomSeo = nomSeo;
            using (var context = new AvisEntities())
            {
                var formationEntity = context.Formation.FirstOrDefault(f => f.NomSeo == nomSeo);
                if (formationEntity == null)
                {
                    return(RedirectToAction("Accueil", "Home"));
                }
                vm.FormationName = formationEntity.Nom;
            }
            return(View(vm));
        }
コード例 #24
0
        public void InsertPerson(string user_id, string nom)
        {
            using (var context = new AvisEntities())
            {
                var person = context.People.Where(f => f.User_id == user_id).FirstOrDefault();
                if (person == null)
                {
                    Person p = new Person();
                    p.Nom     = nom;
                    p.User_id = user_id;

                    context.People.Add(p);
                    context.SaveChanges();
                }
            }
        }
コード例 #25
0
        public bool IsLimiterLesAvis(string user_id, int id_formation)
        {
            Avi avi;

            using (var context = new AvisEntities())
            {
                avi = context.Avis.FirstOrDefault(f => f.IdFormation == id_formation && f.UserId == user_id);
            }
            if (avi != null)
            {
                return(true);
            }

            else
            {
                return(false);
            }
        }
コード例 #26
0
        /// <summary>
        /// Affichage de 4 formations au hazard sur la page d'accueil
        /// </summary>
        public List <DetailFormation> ObtenirDetailFormations()
        {
            var detailFormationListe = new List <DetailFormation>();

            using (var context = new AvisEntities())
            {
                List <Formation> formation = context.Formation.OrderBy(x => Guid.NewGuid()).Take(4).ToList();
                foreach (Formation formationdetail in formation)
                {
                    DetailFormation detailsFormations = ObtenirDetailsFormation(formationdetail.NomSeo);
                    if (detailsFormations != null)
                    {
                        detailFormationListe.Add(detailsFormations);
                    }
                }
            }
            return(detailFormationListe);
        }
コード例 #27
0
        // GET: Formation
        public ActionResult ToutesLesFormations()
        {
            //List<Formation> listFormations = new List<Formation>();

            //using (var context = new AvisEntities())
            //{
            //    listFormations = context.Formation.ToList();
            //}

            ////context.Dispose();

            //return View(listFormations);

            //

            var vm = new AccueilViewModel();

            using (var context = new AvisEntities())
            {
                //var listFormation = new List<Formation>();
                //context.Formation.Take(4).ToList();
                var listFormation = context.Formation.OrderBy(x => Guid.NewGuid()).ToList();
                foreach (var f in listFormation)
                {
                    var dto = new FormationAvecAvisDto();
                    dto.Formation = f;
                    if (f.Avis.Count == 0)
                    {
                        dto.Note = 0;
                    }
                    else
                    {
                        dto.Note = Math.Round(f.Avis.Average(a => a.Note), 2);
                    }
                    vm.ListFormations.Add(dto);
                }
            }

            return(View(vm));
        }
コード例 #28
0
        public ActionResult SaveComment(AvisSave avis)
        {
            Avis.Data.Avis nouvelAvis = new Avis.Data.Avis();
            nouvelAvis.IdFormation = avis.IdFormation;
            nouvelAvis.DateAvis    = DateTime.Now;
            nouvelAvis.Description = avis.Description;
            nouvelAvis.Nom         = User.Identity.GetUserName();
            nouvelAvis.Note        = avis.Note;
            nouvelAvis.UserId      = User.Identity.GetUserId();

            if (!EstAutoriseACommenter(nouvelAvis))
            {
                TempData["Message"] = "Désolé, un seul avis par formation par compte utilisateur !";
                return(RedirectToAction("Error", "Erreur"));
            }

            using (var context = new AvisEntities())
            {
                context.Avis.Add(nouvelAvis);
                context.SaveChanges();
            }

            return(RedirectToAction("Index", "Home", null));
        }
コード例 #29
0
        public ActionResult Accueil()
        {
            var vm = new AccueilViewModel();

            using (var context = new AvisEntities())
            {
                var listFormation = context.Formation.OrderBy(x => Guid.NewGuid()).Take(4).ToList();
                foreach (var f in listFormation)
                {
                    var dto = new FormationAvecAvisDto();
                    dto.Formation = f;
                    if (f.Avis.Count == 0)
                    {
                        dto.Note = 0;
                    }
                    else
                    {
                        dto.Note = Math.Round(f.Avis.Average(a => a.Note), 2);
                    }
                    vm.ListFormations.Add(dto);
                }
            }
            return(View(vm));
        }
コード例 #30
0
        public ActionResult SaveComment(SaveCommentViewModel comment)
        {
            using (var context = new AvisEntities())
            {
                var formationEntity = context.Formation.FirstOrDefault(f => f.NomSeo == comment.NomSeo);
                if (formationEntity == null)
                {
                    return(RedirectToAction("Accueil", "Home"));
                }

                Avis nouvelAvis = new Avis();
                nouvelAvis.DateAvis = DateTime.Now;

                var userId = User.Identity.GetUserId();

                var mgerUnicite = new UniqueAvisVerification();
                if (!mgerUnicite.EstAutoriseACommenter(userId, formationEntity.Id))
                {
                    TempData["Message"] = "Désolé, un seul avis par compte utilisateur.";
                    return(RedirectToAction("DetailsFormation", "Formation", new { nomSeo = comment.NomSeo }));
                }

                var mger = new PersonneManager();
                nouvelAvis.Nom         = mger.GetNomFromUserId(userId);
                nouvelAvis.Description = comment.Commentaire;

                nouvelAvis.UserId = userId;

                double dNote = 0;

                if (!double.TryParse(comment.Note, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out dNote))
                {
                    throw new Exception("Impossible de parser la note " + comment.Note);
                }

                nouvelAvis.Note = dNote;

                nouvelAvis.IdFormation = formationEntity.Id;

                context.Avis.Add(nouvelAvis);

                try
                {
                    context.SaveChanges();
                }
                catch (DbEntityValidationException e)
                {
                    foreach (var eve in e.EntityValidationErrors)
                    {
                        Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                          eve.Entry.Entity.GetType().Name, eve.Entry.State);
                        foreach (var ve in eve.ValidationErrors)
                        {
                            Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                              ve.PropertyName, ve.ErrorMessage);
                        }
                    }
                    throw;
                }

                //context.SaveChanges();
            }

            return(RedirectToAction("DetailsFormation", "Formation", new { nomSeo = comment.NomSeo }));
        }