// TODO : redirection si l'utilisateur a déjà donné son avis
        public ActionResult Create(int idProduit, int idDetail)
        {
            var model = new AvisViewModel()
            {
                produit = _produitRepository.GetById(idProduit)
            };

            ViewBag.IdClient = _detailRepository.GetById(idDetail).IdCommandeNavigation.IdClient;
            return(View(model));
        }
示例#2
0
        public IHttpActionResult GetPosteAvis(int id)
        {
            var   pvm   = new PosteViewModelAvis();
            Poste poste = db.Postes.Find(id);

            if (poste == null)
            {
                return(NotFound());
            }
            else
            {
                pvm.ID                = poste.ID;
                pvm.CategorieID       = poste.CategorieID;
                pvm.ClientID2         = poste.ClientID2;
                pvm.Poste_title       = poste.Poste_title;
                pvm.Poste_image       = poste.Poste_image;
                pvm.Poste_description = poste.Poste_description;
                pvm.Date_debut        = poste.Date_debut;
                pvm.Date_fin          = poste.Date_fin;
                pvm.Etat              = poste.Etat;
                pvm.Pay               = poste.Pay;
                pvm.Ville             = poste.Ville;
                pvm.Adress            = pvm.Adress;

                pvm.nombreAvis = db.Avis.Count();
                pvm.noteAvis   = db.Avis.Average(p => p.Note);
                List <AvisViewModel> avm = new List <AvisViewModel>();
                foreach (var a in poste.Avis)
                {
                    AvisViewModel amv = new AvisViewModel();
                    amv.Id          = a.Id;
                    amv.Nom         = a.Nom;
                    amv.Description = a.Description;
                    amv.Note        = a.Note;
                    amv.IdPoste     = a.IdPoste;
                    amv.DateAvi     = a.DateAvi;
                    amv.IdClient    = a.IdClient;
                    avm.Add(amv);
                }
                pvm.avis          = avm;
                pvm.Client_Prenom = poste.Client.Client_Prenom;
                pvm.Client_image  = poste.Client.Client_image;
            }

            return(Ok(pvm));

            // OrderBy(x => Guid.NewGuid()).Take(4).ToList()
        }
 public ActionResult Create(AvisViewModel avisViewModel)
 {
     try {
         Avis avis = new Avis {
             IdClient  = avisViewModel.IdClient,
             IdProduit = avisViewModel.IdProduit,
             Note      = avisViewModel.Note,
             Date      = DateTime.Now,
             Contenu   = avisViewModel.Contenu
         };
         _avisRepository.Create(avis);
         return(RedirectToAction("Index", "Tirelires"));
     }
     catch {
         return(View());
     }
 }
示例#4
0
        //// GET: api/Postes
        //public List<PosteViewModel> GetPostes()
        //{
        //    //instance List de type PostesDansCategorie
        //    List<PosteViewModel> ListPos = new List<PosteViewModel>();
        //    // instance objet de PostesDansCategorie

        //    //recuperer tout les valeur de categories
        //    var pos = db.Postes.ToList();
        //    //boucler sur cat pour recuperer les categorie
        //    foreach (var p in pos)
        //    {
        //        //instance d'objet
        //        PosteViewModel pvm = new PosteViewModel();
        //        pvm.ID = p.ID;
        //        pvm.CategorieID = p.CategorieID;
        //        pvm.ClientID2 = p.ClientID2;
        //        pvm.Poste_title = p.Poste_title;
        //        pvm.Poste_image = p.Poste_image;
        //        pvm.Poste_description = p.Poste_description;
        //        pvm.Date_debut = p.Date_debut;
        //        pvm.Date_fin = p.Date_fin;
        //        pvm.Etat = p.Etat;
        //        ListPos.Add(pvm);
        //    }
        //    return (ListPos);
        //}

        public IHttpActionResult GetPostesAvis(int prend = 0, string option = "")
        {
            //instance List de type PostesDansCategorie
            List <PosteViewModelAvis> ListPos = new List <PosteViewModelAvis>();

            // instance objet de PostesDansCategorie

            if (option == "best")
            {
                //recuperer tout les valeur de categories
                // var pos1= db.Postes.OrderByDescending(p => p.Avis.Average(l => l.Note)).Take(prend).ToList();
                var pos = db.Postes.OrderByDescending(p => p.Avis.Average(l => l.Note)).Take(prend).ToList();;
                //boucler sur cat pour recuperer les categorie
                foreach (var p in pos)
                {
                    //instance d'objet
                    PosteViewModelAvis pvm = new PosteViewModelAvis();
                    pvm.ID                = p.ID;
                    pvm.CategorieID       = p.CategorieID;
                    pvm.ClientID2         = p.ClientID2;
                    pvm.Poste_title       = p.Poste_title;
                    pvm.Poste_image       = p.Poste_image;
                    pvm.Poste_description = p.Poste_description;
                    pvm.Date_debut        = p.Date_debut;
                    pvm.Date_fin          = p.Date_fin;
                    pvm.Etat              = p.Etat;
                    pvm.Pay               = p.Pay;
                    pvm.nombreAvis        = p.Avis.Count();
                    pvm.noteAvis          = (p.Avis.Average(f => f.Note)) / 2;
                    pvm.Categorie         = p.Categorie.Catégorie_title;
                    List <AvisViewModel> avm = new List <AvisViewModel>();
                    foreach (var a in p.Avis)
                    {
                        AvisViewModel amv = new AvisViewModel();
                        amv.Id          = a.Id;
                        amv.Nom         = a.Nom;
                        amv.Description = a.Description;
                        amv.Note        = a.Note;
                        amv.IdPoste     = a.IdPoste;
                        amv.DateAvi     = a.DateAvi;
                        amv.IdClient    = a.IdClient;
                        avm.Add(amv);
                    }

                    pvm.ClientID       = p.ClientID;
                    pvm.Client_Prenom  = p.Client.Client_Prenom;
                    pvm.Client_Nom     = p.Client.Client_Nom;
                    pvm.Client_image   = p.Client.Client_image;
                    pvm.Email          = p.Client.Email;
                    pvm.Client_adresse = p.Client.Client_adresse;

                    pvm.avis = avm;

                    ListPos.Add(pvm);
                }
            }

            else if (option == "date")
            {
                var pos = db.Postes.OrderByDescending(p => p.Date_CreationPost).Take(prend).ToList();
                //boucler sur cat pour recuperer les categorie
                foreach (var p in pos)
                {
                    //instance d'objet
                    PosteViewModelAvis pvm = new PosteViewModelAvis();
                    pvm.ID                = p.ID;
                    pvm.CategorieID       = p.CategorieID;
                    pvm.ClientID2         = p.ClientID2;
                    pvm.Poste_title       = p.Poste_title;
                    pvm.Poste_image       = p.Poste_image;
                    pvm.Poste_description = p.Poste_description;
                    pvm.Date_debut        = p.Date_debut;
                    pvm.Date_fin          = p.Date_fin;
                    pvm.Etat              = p.Etat;
                    pvm.nombreAvis        = p.Avis.Count();
                    pvm.noteAvis          = (p.Avis.Average(f => f.Note)) / 2;
                    List <AvisViewModel> avm = new List <AvisViewModel>();
                    foreach (var a in p.Avis)
                    {
                        AvisViewModel amv = new AvisViewModel();
                        amv.Id          = a.Id;
                        amv.Nom         = a.Nom;
                        amv.Description = a.Description;
                        amv.Note        = a.Note;
                        amv.IdPoste     = a.IdPoste;
                        amv.DateAvi     = a.DateAvi;
                        amv.IdClient    = a.IdClient;
                        avm.Add(amv);
                    }



                    pvm.ClientID       = p.ClientID;
                    pvm.Client_Prenom  = p.Client.Client_Prenom;
                    pvm.Client_Nom     = p.Client.Client_Nom;
                    pvm.Client_image   = p.Client.Client_image;
                    pvm.Email          = p.Client.Email;
                    pvm.Client_adresse = p.Client.Client_adresse;



                    pvm.avis = avm;

                    ListPos.Add(pvm);
                }
            }
            else
            {
                var pos = db.Postes.OrderBy(x => Guid.NewGuid()).Take(prend).ToList();
                //boucler sur cat pour recuperer les categorie
                foreach (var p in pos)
                {
                    //instance d'objet
                    PosteViewModelAvis pvm = new PosteViewModelAvis();
                    pvm.ID                = p.ID;
                    pvm.CategorieID       = p.CategorieID;
                    pvm.ClientID2         = p.ClientID2;
                    pvm.Poste_title       = p.Poste_title;
                    pvm.Poste_image       = p.Poste_image;
                    pvm.Poste_description = p.Poste_description;
                    pvm.Date_debut        = p.Date_debut;
                    pvm.Date_fin          = p.Date_fin;
                    pvm.Etat              = p.Etat;
                    pvm.nombreAvis        = p.Avis.Count();
                    pvm.noteAvis          = (p.Avis.Average(f => f.Note)) / 2;
                    List <AvisViewModel> avm = new List <AvisViewModel>();
                    foreach (var a in p.Avis)
                    {
                        AvisViewModel amv = new AvisViewModel();
                        amv.Id          = a.Id;
                        amv.Nom         = a.Nom;
                        amv.Description = a.Description;
                        amv.Note        = a.Note;
                        amv.IdPoste     = a.IdPoste;
                        amv.DateAvi     = a.DateAvi;
                        amv.IdClient    = a.IdClient;
                        avm.Add(amv);
                    }

                    ClientApiModel cam = new ClientApiModel();

                    cam.ID             = p.Client.ID;
                    cam.Client_Prenom  = p.Client.Client_Prenom;
                    cam.Client_Nom     = p.Client.Client_Nom;
                    cam.Client_image   = p.Client.Client_image;
                    cam.Email          = p.Client.Email;
                    cam.Client_adresse = p.Client.Client_adresse;

                    pvm.Client = cam;



                    pvm.avis = avm;

                    ListPos.Add(pvm);
                }
            }

            return(Ok(ListPos));
        }