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); } }
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")); }