public void ActiverDesactiverCompte(int noMembre) { Membre mem = db.Membres.Where(m => m.noMembre == noMembre).Include(p => p.listePhotosMembres).Include(a => a.listeActivitesOrganises) .Include(a => a.listeHobbies).Include(a => a.listeRaisonsSurSite).Include(a => a.listeDeVisitesDeMonProfil) .FirstOrDefault(); if (mem != null) { //compte est actif, donc on désactive if (mem.dateSuppressionDuCompte == null && mem.compteSupprimeParAdmin == null) { List <Activite> activites = db.Activites.Where(a => a.noMembreOrganisateur == mem.noMembre).ToList(); List <Photo> photos = db.Photos.Where(p => p.noMembre == mem.noMembre).ToList(); List <Visite> visites = db.Visites.Where(p => p.noMembreVisite == mem.noMembre || p.noMembreVisiteur == mem.noMembre).ToList(); mem.dateSuppressionDuCompte = DateTime.Now; mem.compteSupprimeParAdmin = false; //On annule chacune de ses activites FUTURES. foreach (Activite a in mem.listeActivitesOrganises) { if (a.date > DateTime.Now) { Activite acti; Utilitaires.AnnulerActivite(a.noActivite, null, out acti); } } //On retire sa participation à tous les activités FUTURES. foreach (Activite a in mem.listeActivites) { if (a.date > DateTime.Now) { Utilitaires.ParticiperActivite(a.noActivite, noMembre); } } } else { mem.dateSuppressionDuCompte = null; mem.compteSupprimeParAdmin = null; } db.SaveChanges(); } }
public ActionResult Annulation(int?id) { ViewBag.Title = "Supprimer mon activité"; if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Activite acti; if (!User.IsInRole("Admin") && Request.IsAuthenticated) { string resultat = Utilitaires.AnnulerActivite((int)id, int.Parse(Request.Cookies["SiteDeRencontre"]["noMembre"]), out acti); if (resultat == "Activité non trouvée.") { return(new HttpStatusCodeResult(HttpStatusCode.NotFound)); } else if (resultat == "Interdit") { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden)); } else if (resultat == "Reussi") { foreach (Membre m in acti.membresParticipants) { LesUtilitaires.Utilitaires.envoieCourriel( "Annulation d'une des activités à laquelle vous participiez! - Club Contact", LesUtilitaires.Utilitaires.RenderRazorViewToString(this, "NotificationActivite", acti), m.courriel ); } } else { return(new HttpStatusCodeResult(HttpStatusCode.NotFound)); } } else { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden)); } return(RedirectToAction("Index", "Activites")); }
public ActionResult DesactiverCompte(int noMembreDesactiver, int noSignalement) { Membre mem = db.Membres.Where(m => m.noMembre == noMembreDesactiver).Include(p => p.listePhotosMembres).Include(a => a.listeActivitesOrganises) .Include(a => a.listeHobbies).Include(a => a.listeRaisonsSurSite).Include(a => a.listeDeVisitesDeMonProfil) .FirstOrDefault(); List <Activite> activites = db.Activites.Where(a => a.noMembreOrganisateur == mem.noMembre).ToList(); List <Photo> photos = db.Photos.Where(p => p.noMembre == mem.noMembre).ToList(); List <Visite> visites = db.Visites.Where(p => p.noMembreVisite == mem.noMembre || p.noMembreVisiteur == mem.noMembre).ToList(); if (mem == null) { return(HttpNotFound()); } else { mem.dateSuppressionDuCompte = DateTime.Now; mem.compteSupprimeParAdmin = true; //On annule chacune de ses activites FUTURES. foreach (Activite a in mem.listeActivitesOrganises) { if (a.date > DateTime.Now) { Activite acti; Utilitaires.AnnulerActivite(a.noActivite, null, out acti); } } //On retire sa participation à tous les activités FUTURES. foreach (Activite a in mem.listeActivites) { if (a.date > DateTime.Now) { Utilitaires.ParticiperActivite(a.noActivite, noMembreDesactiver); } } db.SaveChanges(); } CompteAdmin compteAdminTraiteur = db.CompteAdmins.Where(m => m.nomCompte == User.Identity.Name).FirstOrDefault(); ActionTraitement actionCompteBloque = db.ActionTraitements.Where(m => m.nomActionTraitement == "Compte bloqué").FirstOrDefault(); Signalement leSignalement = db.Signalements.Where(m => m.noSignalement == noSignalement).FirstOrDefault(); leSignalement.dateSuiviNecessaire = null; leSignalement.etatSignalementActuel = db.EtatSignalements.Where(m => m.nomEtatSignalement == "Traité").FirstOrDefault(); leSignalement.adminQuiTraite = compteAdminTraiteur; //Envoie d'un message automatisé de traitement Message messageAccuseApresTraitement = new Message(); messageAccuseApresTraitement.dateEnvoi = DateTime.Now; messageAccuseApresTraitement.sujetMessage = "Votre signalement contre " + leSignalement.membreContreQuiEstPlainte.surnom + " a été traité."; messageAccuseApresTraitement.contenuMessage = "Votre signalement contre " + leSignalement.membreContreQuiEstPlainte.surnom + " a bien été traité, et une action a eu lieu afin que le comportement" + " fautif ne se reproduise plus. Merci d'aider à rendre Club Contact un environnement sécuritaire!" + Environment.NewLine + Environment.NewLine + "- Le service d'administration de Club Contact"; messageAccuseApresTraitement.lu = false; messageAccuseApresTraitement.membreReceveur = leSignalement.membreFaisantPlainte; messageAccuseApresTraitement.noMembreReceveur = leSignalement.membreFaisantPlainte.noMembre; db.Messages.Add(messageAccuseApresTraitement); db.SaveChanges(); //Fin envoie d'un message automatisé de traitement TraitementSignalement leTraitementEffectuer = new TraitementSignalement(); leTraitementEffectuer.compteAdminTraiteur = compteAdminTraiteur; leTraitementEffectuer.noCompteAdminTraiteur = compteAdminTraiteur.noCompteAdmin; leTraitementEffectuer.actionTraitement = actionCompteBloque; leTraitementEffectuer.noActionTraitement = actionCompteBloque.noActionTraitement; leTraitementEffectuer.dateTraitementSignalement = DateTime.Now; leTraitementEffectuer.noSignalementLie = leSignalement.noSignalement; leTraitementEffectuer.signalementLie = leSignalement; db.TraitementSignalements.Add(leTraitementEffectuer); List <Signalement> lesSignalementDuMembreQuiSeraDesactiver = db.Signalements.Where(m => m.noMembreContreQuiEstPlainte == noMembreDesactiver && m.noSignalement != leSignalement.noSignalement).ToList(); foreach (Signalement s in lesSignalementDuMembreQuiSeraDesactiver) { s.dateSuiviNecessaire = null; s.etatSignalementActuel = db.EtatSignalements.Where(m => m.nomEtatSignalement == "Traité").FirstOrDefault(); if (s.adminQuiTraite == null && s.noCompteAdmin == null) { s.adminQuiTraite = compteAdminTraiteur; s.noCompteAdmin = compteAdminTraiteur.noCompteAdmin; } TraitementSignalement traitementEffectureSurAutre = new TraitementSignalement(); traitementEffectureSurAutre.compteAdminTraiteur = compteAdminTraiteur; traitementEffectureSurAutre.noCompteAdminTraiteur = compteAdminTraiteur.noCompteAdmin; traitementEffectureSurAutre.actionTraitement = actionCompteBloque; traitementEffectureSurAutre.noActionTraitement = actionCompteBloque.noActionTraitement; traitementEffectureSurAutre.dateTraitementSignalement = DateTime.Now; traitementEffectureSurAutre.noSignalementLie = s.noSignalement; traitementEffectureSurAutre.signalementLie = s; db.TraitementSignalements.Add(traitementEffectureSurAutre); } db.SaveChanges(); return(RedirectToAction("Gestion", "Admin", new { tab = 2 })); }