Пример #1
0
        public ActionResult AjouterLignePhotoActivite(int i, int index, int noActivite)
        {
            int noMembreCo;

            if (!verifierSiCookieNoMembreExiste(out noMembreCo))
            {
                TempData["Message"] = "Veuillez vous identifier.";
                return(RedirectToAction("Login", "Authentification"));
            }
            Membre membreCo = db.Membres.Where(m => m.noMembre == noMembreCo).FirstOrDefault();

            Activite activite = db.Activites.Where(m => m.noActivite == noActivite).FirstOrDefault();

            if (membreCo != null && activite != null)
            {
                PhotosActivite newPhoto = new PhotosActivite();
                newPhoto.membreQuiPublie   = membreCo;
                newPhoto.noMembreQuiPublie = noMembreCo;

                newPhoto.photoPrincipale = false;
                newPhoto.activite        = activite;
                newPhoto.noActivite      = noActivite;

                ViewData.TemplateInfo.HtmlFieldPrefix = "resultatsActivite[" + i + "].listePhotosActivites[" + index + "]";

                newPhoto.nomFichierPhoto = noActivite + "$" + noMembreCo + "$" + "00000.jpg";

                ViewBag.i = i;
                ViewBag.x = index;

                return(PartialView("~\\Views\\Shared\\EditorTemplates\\PhotosActivite.cshtml", newPhoto));
            }
            else
            {
                TempData["messageErreur"] = "Une erreur s'est produite lors de l'ajout d'une nouvelle photo. Veuillez réessayer plus tard, ou essayez de vous déconnecter et de vous reconnecter, puis réessayez.";
                return(null);
            }
        }
Пример #2
0
        public ActionResult Edit(Activite activite, HttpPostedFileBase fichierPhotos)
        {
            int noMembreCo;

            if (!verifierSiCookieNoMembreExiste(out noMembreCo))
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Forbidden));
            }

            Membre leMembreCo = db.Membres.Where(m => m.noMembre == noMembreCo).FirstOrDefault();

            if (leMembreCo == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Forbidden));
            }

            ViewBag.titre = "Edit";
            bool nouvelleActivite = (activite.noActivite == 0 ? true : false);

            bool           nouvellePhoto;
            PhotosActivite laPhotoPrincipale = activite.listePhotosActivites.Where(p => p.photoPrincipale == true && p.noActivite == activite.noActivite).FirstOrDefault();

            if (fichierPhotos != null)
            {
                if (laPhotoPrincipale != null)
                {
                    nouvellePhoto = false;
                }
                else
                {
                    nouvellePhoto = true;
                }
            }
            else
            {
                nouvellePhoto = false;
            }

            DateTime?abonnementLePlusRecent = db.Abonnements.Where(m => m.noMembre == noMembreCo).OrderByDescending(m => m.dateFin).Select(m => m.dateFin).FirstOrDefault();

            if (abonnementLePlusRecent != null)
            {
                ViewBag.finAbonnement = abonnementLePlusRecent;
            }

            if (activite.date == null || activite.date < DateTime.Now)
            {
                this.ModelState.AddModelError("date", "Veuillez choisir une date dans le futur.");
            }
            else if (abonnementLePlusRecent != null)
            {
                if (activite.date >= abonnementLePlusRecent)
                {
                    this.ModelState.AddModelError("date", "Veuillez choisir une date avant que votre abonnement se termine.");
                }
            }

            if (ModelState.IsValid)
            {
                try
                {
                    if (nouvelleActivite == true)
                    {
                        db.Entry(activite).State = EntityState.Added;
                    }
                    else
                    {
                        db.Entry(activite).State = EntityState.Modified;
                    }

                    activite.membreOrganisateur   = leMembreCo;
                    activite.noMembreOrganisateur = leMembreCo.noMembre;

                    //db.SaveChanges();

                    if (nouvellePhoto)
                    {
                        laPhotoPrincipale = new PhotosActivite();
                        //laPhotoPrincipale.noActivite = activite.noActivite;
                        laPhotoPrincipale.activite          = activite;
                        laPhotoPrincipale.noMembreQuiPublie = leMembreCo.noMembre;
                        laPhotoPrincipale.membreQuiPublie   = leMembreCo;
                        laPhotoPrincipale.photoPrincipale   = true;

                        db.PhotosActivites.Add(laPhotoPrincipale);
                    }

                    if (fichierPhotos != null && !fichierPhotos.FileName.ToString().ToLower().EndsWith(".jpg"))
                    {
                        this.ModelState.AddModelError("nomFichierPhoto", fichierPhotos.FileName.ToString() + " doit être de type jpg");
                    }
                    else if (fichierPhotos != null)
                    {
                        db.SaveChanges();

                        try
                        {
                            string nomFichierNouvellePhoto = activite.noActivite + "$" + leMembreCo.noMembre + "$" + string.Format("{0:00000}", laPhotoPrincipale.noPhotoActivite) + ".jpg";

                            string fname = Path.Combine(Server.MapPath("~/Upload/PhotosActivites/") + nomFichierNouvellePhoto);
                            fichierPhotos.SaveAs(fname);

                            laPhotoPrincipale.nomFichierPhoto = nomFichierNouvellePhoto;
                        }
                        catch (Exception e)
                        {
                            this.ModelState.AddModelError("nomFichierPhoto", fichierPhotos.FileName.ToString() + " incapable de sauvgarder.");
                        }
                    }

                    if (ModelState.IsValid)
                    {
                        db.SaveChanges();
                    }
                    else
                    {
                        foreach (var key in this.ModelState.Keys)
                        {
                            if (this.ModelState[key].Errors.Count != 0)
                            {
                                TempData["Erreur"] += "Erreur: " + this.ModelState[key].Errors[0].ErrorMessage + "<br/>";
                                TempData.Keep();
                            }
                        }

                        ViewBagNecessaireModifierActivite(activite);

                        if (!nouvelleActivite)
                        {
                            ViewBag.titre = "edit";
                        }

                        return(View("Edit", activite));
                    }
                }
                catch (DbEntityValidationException ex)
                {
                    var error = ex.EntityValidationErrors.First().ValidationErrors.First();
                    this.ModelState.AddModelError(error.PropertyName, error.ErrorMessage);

                    ViewBagNecessaireModifierActivite(activite);

                    if (!nouvelleActivite)
                    {
                        ViewBag.titre = "edit";
                    }

                    return(View("Edit", activite));
                }
                catch (DbUpdateException e)
                {
                    Elmah.ErrorSignal.FromCurrentContext().Raise(Utilitaires.templateException("Edit", "Activites", "Mise à jour de la base de données à la suite de la modification d'un activité a échoué.", e, null, "post"));

                    TempData["Erreur"] = "Une erreur est survenu lors de la sauvegarde de votre activité, veuillez réessayer.";
                    TempData.Keep();

                    ViewBagNecessaireModifierActivite(activite);

                    if (!nouvelleActivite)
                    {
                        ViewBag.titre = "edit";
                    }

                    return(View("Edit", activite));
                }
            }
            else
            {
                foreach (var key in this.ModelState.Keys)
                {
                    if (this.ModelState[key].Errors.Count != 0)
                    {
                        TempData["Erreur"] += "Erreur: " + this.ModelState[key].Errors[0].ErrorMessage;
                        TempData.Keep();
                    }
                }

                ViewBagNecessaireModifierActivite(activite);

                if (!nouvelleActivite)
                {
                    ViewBag.titre = "edit";
                }

                return(View("Edit", activite));
            }

            if (!nouvelleActivite)
            {
                Activite lActivite = db.Activites.Where(a => a.noActivite == activite.noActivite).Include(a => a.membresParticipants).FirstOrDefault();

                if (lActivite != null)
                {
                    foreach (Membre m in lActivite.membresParticipants)
                    {
                        LesUtilitaires.Utilitaires.envoieCourriel(
                            "Changement dans une des activités à laquelle vous participez - Club Contact",
                            LesUtilitaires.Utilitaires.RenderRazorViewToString(this, "NotificationActivite", lActivite),
                            m.courriel
                            );
                    }
                }
            }

            return(RedirectToAction("Index", "Activites"));
        }