Esempio n. 1
0
    private bool ValidateUserAdmin(string login, string password)
    {
        ClubContactContext db = new ClubContactContext();

        try
        {
            //on va chercher le membre si celui-ci n'est pas supprimé
            CompteAdmin admin = db.CompteAdmins.Where(m => m.nomCompte.ToLower() == login.ToLower()).FirstOrDefault();

            if (admin != null)
            {
                //on vérifie si le mdp qu'il a entré est égal au mdp de la BD
                if (Membre.hashedPwd(password).Equals(admin.motDePasseHashe))
                {
                    return(true);
                }
            }
        }
        catch (Exception e)
        {
            //Renvoyer un message d'erreur dans Elmah, mais on fait comme si la connexion n'as simplement pas fonctionner au niveau de l'utilisateur.
            Elmah.ErrorSignal.FromCurrentContext().Raise(
                new Exception("Action: ValidateUser, Contrôleur: Authentification ; Erreur potentielle: Requête LINQ n'a pas fonctionnée. ; login : "******".", e)
                );
            ModelState.AddModelError(string.Empty, "Une erreur s'est produite lors de la connexion, veuillez réessayer.");
        }


        return(false);
    }
Esempio n. 2
0
        public static IQueryable <Membre> ListeOrganisateursActivite(bool?annulee, bool?payant, int?noTheme, int?noProvince, int?noVille,
                                                                     int?anneeDebut, int?moisDebut, int?jourDebut,
                                                                     int?anneeFin, int?moisFin, int?jourFin, bool organisateursDesactiver = false)
        {
            ClubContactContext db = new ClubContactContext();

            IQueryable <int> listeActiviteResultat = db.Activites.Where(m => (annulee == null ? true : false || m.annulee == annulee) &&
                                                                        (payant == null ? true : false || (payant == true ? m.cout > 0 : (m.cout == 0 || m.cout == null))) &&
                                                                        (noTheme == null ? true : false || m.noTheme == noTheme) &&

                                                                        (organisateursDesactiver == false ? (m.membreOrganisateur.compteSupprimeParAdmin == null && m.membreOrganisateur.dateSuppressionDuCompte == null) : true) &&

                                                                        (noProvince == null ? true : false || m.noProvince == noProvince) &&
                                                                        (noVille == null ? true : false || m.noVille == noVille) &&

                                                                        (anneeDebut == null ? true : false ||
                                                                         (
                                                                             (m.date.Year > anneeDebut) ||
                                                                             (m.date.Year == anneeDebut && (moisDebut == null || m.date.Month > moisDebut)) ||
                                                                             (m.date.Year == anneeDebut && m.date.Month == moisDebut && (jourDebut == null || m.date.Day >= jourDebut))
                                                                         )

                                                                        ) &&
                                                                        (anneeFin == null ? true : false ||
                                                                         (
                                                                             (m.date.Year < anneeFin) ||
                                                                             (m.date.Year == anneeFin && (moisFin == null || m.date.Month < moisFin)) ||
                                                                             (m.date.Year == anneeFin && m.date.Month == moisFin && (jourFin == null || m.date.Day <= jourFin))
                                                                         )
                                                                        )
                                                                        ).Select(m => m.noMembreOrganisateur);

            return(db.Membres.Where(m => listeActiviteResultat.Contains(m.noMembre)));
        }
Esempio n. 3
0
        public static string AnnulerActivite(int noActivite, int?noMembreCo, out Activite activite)
        {
            ClubContactContext db = new ClubContactContext();

            activite = db.Activites.Where(p => p.noActivite == noActivite).Include(m => m.listeAvisActivite).Include(m => m.listePhotosActivites).Include(m => m.membresParticipants).FirstOrDefault();

            if (activite == null)
            {
                return("Activité non trouvée.");
            }

            if (noMembreCo != null)
            {
                if (activite.noMembreOrganisateur != noMembreCo)
                {
                    return("Interdit");
                }
            }

            try
            {
                activite.annulee = true;

                db.SaveChanges();

                return("Reussi");
            }
            catch (Exception e)
            {
                throw Utilitaires.templateException("annulerActivite", "Objet Utilitaires.cs", "Suppression de l'activité n'as pas fonctionné.", e);
            }
        }
Esempio n. 4
0
        public static IQueryable <Signalement> ListeSignalement(int?noEtatSignalement = null)
        {
            ClubContactContext db = new ClubContactContext();

            return(db.Signalements
                   .Where(m => (noEtatSignalement == null ? true : false || m.noEtatSignalementActuel == noEtatSignalement)
                          ));
        }
Esempio n. 5
0
        //Signalement
        public static int NbSignalementsRecu(bool?traiteUniquement = null, bool?nouveauUniquement = null)
        {
            ClubContactContext db = new ClubContactContext();

            return(db.Signalements.Where(m => ((traiteUniquement == null ? true : false) || (traiteUniquement == true ? m.etatSignalementActuel.nomEtatSignalement == "Traité" : true)) &&
                                         ((nouveauUniquement == null ? true : false) || (nouveauUniquement == true ? m.etatSignalementActuel.nomEtatSignalement == "Nouveau" : true))
                                         ).Count());
        }
Esempio n. 6
0
    public ActionResult ResetMotDePasse(int noMembre)
    {
        ClubContactContext db = new ClubContactContext();

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

        return(View("ResetPassword", leMembreAResetLeMotDePasse));
    }
Esempio n. 7
0
        public static IQueryable <Membre> ListeMembres(bool?premium = null, int?ageMin = null, int?ageMax = null, int?noProvince = null, int?noVille = null, bool membresDesactiver = false)
        {
            ClubContactContext db = new ClubContactContext();

            #region trouverAgeEnChiffre
            //DateTime? dateAgeMax = null;
            //DateTime? dateAgeMin = null;

            //if (ageMax != null)
            //{
            //    dateAgeMax = DateTime.Now.AddYears(-(int)ageMax);
            //}

            //if (ageMin != null)
            //{
            //    dateAgeMin = DateTime.Now.AddYears(-(int)ageMin);
            //}
            #endregion

            IQueryable <Membre> lesMembres = db.Membres;

            if (ageMin != null)
            {
                lesMembres = (from m in lesMembres
                              let years = DateTime.Now.Year - ((DateTime)m.dateNaissance).Year
                                          let birthdayThisYear = DbFunctions.AddYears(m.dateNaissance, years)

                                                                 where ageMax >= (birthdayThisYear > DateTime.Now ? years - 1 : years)
                                                                 select m
                              );
            }
            if (ageMax != null)
            {
                lesMembres = (from m in lesMembres
                              let years = DateTime.Now.Year - ((DateTime)m.dateNaissance).Year
                                          let birthdayThisYear = DbFunctions.AddYears(m.dateNaissance, years)

                                                                 where ageMin <= (birthdayThisYear > DateTime.Now ? years - 1 : years)
                                                                 select m
                              );
            }

            return(lesMembres
                   .Where(m => (premium == null ? true : false || m.premium == premium) &&
                          (noProvince == null ? true : false || m.noProvince == noProvince) &&
                          (noVille == null ? true : false || m.noVille == noVille) &&

                          (membresDesactiver == false ? (m.compteSupprimeParAdmin == null && m.dateSuppressionDuCompte == null) :
                           (m.compteSupprimeParAdmin != null && m.dateSuppressionDuCompte != null))

                          //((dateAgeMax == null ? true : false) || m.dateNaissance >= dateAgeMax) &&
                          //((dateAgeMin == null ? true : false) || m.dateNaissance <= dateAgeMin)
                          ));
        }
Esempio n. 8
0
    public ActionResult ResetMotDePasse(Membre leMembre, string motDePasse1)
    {
        ClubContactContext db = new ClubContactContext();

        Membre leMembreAResetLeMotDePasse = db.Membres.Where(m => m.noMembre == leMembre.noMembre).FirstOrDefault();

        ValiderMotDePasse(motDePasse1, null, leMembre.noMembre, true);


        //Reste validation Coté serveur à faire
        leMembreAResetLeMotDePasse.motDePasse = motDePasse1;

        db.SaveChanges();

        return(RedirectToAction("Login", "Authentification"));
    }
Esempio n. 9
0
    public ActionResult MotDePasseOublier(LoginViewModel loginViewModel, int?test)
    {
        ClubContactContext db = new ClubContactContext();

        Membre leMembreAReset = db.Membres.Where(m => m.courriel == loginViewModel.Login).FirstOrDefault();

        if (leMembreAReset != null)
        {
            Utilitaires.envoieCourriel(
                "Réinitialisation de votre mot de passe Club Contact",
                Utilitaires.RenderRazorViewToString(this, "MotDePasseOublierCourrielEnvoye", leMembreAReset.noMembre),
                loginViewModel.Login
                );
        }
        return(RedirectToAction("Login"));
    }
Esempio n. 10
0
        public static int NbMessagesOuCadeaux(int?anneeDebut, int?moisDebut, int?jourDebut, int?anneeFin, int?moisFin, int?jourFin, bool cadeaux = false)
        {
            ClubContactContext db = new ClubContactContext();

            if (cadeaux == true)
            {
                return(db.Gifts.Where(m => (anneeDebut == null ? true : false ||
                                            (
                                                (m.dateEnvoi.Year > anneeDebut) ||
                                                (m.dateEnvoi.Year == anneeDebut && (moisDebut == null || m.dateEnvoi.Month > moisDebut)) ||
                                                (m.dateEnvoi.Year == anneeDebut && m.dateEnvoi.Month == moisDebut && (jourDebut == null || m.dateEnvoi.Day >= jourDebut))
                                            )

                                            ) &&
                                      (anneeFin == null ? true : false ||
                                       (
                                           (m.dateEnvoi.Year < anneeFin) ||
                                           (m.dateEnvoi.Year == anneeFin && (moisFin == null || m.dateEnvoi.Month < moisFin)) ||
                                           (m.dateEnvoi.Year == anneeFin && m.dateEnvoi.Month == moisFin && (jourFin == null || m.dateEnvoi.Day <= jourFin))
                                       )
                                      )
                                      ).Count());
            }
            else
            {
                return(db.Messages.Where(m =>
                                         (anneeDebut == null ? true : false ||
                                          (
                                              (m.dateEnvoi.Year > anneeDebut) ||
                                              (m.dateEnvoi.Year == anneeDebut && (moisDebut == null || m.dateEnvoi.Month > moisDebut)) ||
                                              (m.dateEnvoi.Year == anneeDebut && m.dateEnvoi.Month == moisDebut && (jourDebut == null || m.dateEnvoi.Day >= jourDebut))
                                          )

                                         ) &&
                                         (anneeFin == null ? true : false ||
                                          (
                                              (m.dateEnvoi.Year < anneeFin) ||
                                              (m.dateEnvoi.Year == anneeFin && (moisFin == null || m.dateEnvoi.Month < moisFin)) ||
                                              (m.dateEnvoi.Year == anneeFin && m.dateEnvoi.Month == moisFin && (jourFin == null || m.dateEnvoi.Day <= jourFin))
                                          )
                                         ) &&
                                         (m.membreEnvoyeur != null)
                                         ).Count());
            }
        }
Esempio n. 11
0
        public static int NbActiviteEtParticipantsOrganises(bool participantACalculer, bool?annulee, bool?payant, int?noTheme, int?noProvince, int?noVille,
                                                            int?anneeDebut, int?moisDebut, int?jourDebut,
                                                            int?anneeFin, int?moisFin, int?jourFin)
        {
            ClubContactContext db = new ClubContactContext();

            IQueryable <Activite> activitesQuiCorrespondent = db.Activites.Where(m => (annulee == null ? true : false || m.annulee == annulee) &&
                                                                                 (payant == null ? true : false || (payant == true ? m.cout > 0 : (m.cout == 0 || m.cout == null))) &&
                                                                                 (noTheme == null ? true : false || m.noTheme == noTheme) &&

                                                                                 (noProvince == null ? true : false || m.noProvince == noProvince) &&
                                                                                 (noVille == null ? true : false || m.noVille == noVille) &&

                                                                                 (anneeDebut == null ? true : false ||
                                                                                  (
                                                                                      (m.date.Year > anneeDebut) ||
                                                                                      (m.date.Year == anneeDebut && (moisDebut == null || m.date.Month > moisDebut)) ||
                                                                                      (m.date.Year == anneeDebut && m.date.Month == moisDebut && (jourDebut == null || m.date.Day >= jourDebut))
                                                                                  )

                                                                                 ) &&
                                                                                 (anneeFin == null ? true : false ||
                                                                                  (
                                                                                      (m.date.Year < anneeFin) ||
                                                                                      (m.date.Year == anneeFin && (moisFin == null || m.date.Month < moisFin)) ||
                                                                                      (m.date.Year == anneeFin && m.date.Month == moisFin && (jourFin == null || m.date.Day <= jourFin))
                                                                                  )
                                                                                 )
                                                                                 );

            //Nb d'activités
            if (participantACalculer == false)
            {
                return(activitesQuiCorrespondent.Count());
            }
            //NbParticipants
            else
            {
                return(activitesQuiCorrespondent.Sum(m => (int?)m.membresParticipants.Count()) ?? 0);
            }
        }
Esempio n. 12
0
    /// <summary>
    /// Méthode validant un utilisateur avec son mot de passe
    /// </summary>
    /// <param name="login"></param>
    /// <param name="password"></param>
    /// <returns></returns>
    private bool ValidateUser(string login, string password)
    {
        //si l'admin veut se logger
        if (login.ToLower().Equals("admin"))
        {
            //son mot de passe est stocké dans le code
            if (password == "jaimeADMIN")
            {
                return(true);
            }
        }
        else
        {
            ClubContactContext db = new ClubContactContext();

            try
            {
                //on va chercher le membre si celui-ci n'est pas supprimé
                Membre membre = db.Membres.Where(m => m.courriel.ToLower() == login.ToLower() && m.compteSupprimeParAdmin == null && m.dateSuppressionDuCompte == null).FirstOrDefault();

                if (membre != null)
                {
                    //on vérifie si le mdp qu'il a entré est égal au mdp de la BD
                    if (Membre.hashedPwd(password).Equals(membre.motDePasseHashe))
                    {
                        return(true);
                    }
                }
            }
            catch (Exception e)
            {
                //Renvoyer un message d'erreur dans Elmah, mais on fait comme si la connexion n'as simplement pas fonctionner au niveau de l'utilisateur.
                Elmah.ErrorSignal.FromCurrentContext().Raise(
                    new Exception("Action: ValidateUser, Contrôleur: Authentification ; Erreur potentielle: Requête LINQ n'a pas fonctionnée. ; login : "******".", e)
                    );
                ModelState.AddModelError(string.Empty, "Une erreur s'est produite lors de la connexion, veuillez réessayer.");
            }
        }
        return(false);
    }
Esempio n. 13
0
        //Visites
        public static int NbConnexion(int?anneeDebut, int?moisDebut, int?jourDebut, int?anneeFin, int?moisFin, int?jourFin, bool?premium)
        {
            ClubContactContext db = new ClubContactContext();

            return(db.Connexions.Where(m => (m.premiumAuMomentDeConnexion == premium) &&
                                       (anneeDebut == null ? true : false ||
                                        (
                                            (m.dateConnexion.Year > anneeDebut) ||
                                            (m.dateConnexion.Year == anneeDebut && (moisDebut == null || m.dateConnexion.Month > moisDebut)) ||
                                            (m.dateConnexion.Year == anneeDebut && m.dateConnexion.Month == moisDebut && (jourDebut == null || m.dateConnexion.Day >= jourDebut))
                                        )

                                       ) &&
                                       (anneeFin == null ? true : false ||
                                        (
                                            (m.dateConnexion.Year < anneeFin) ||
                                            (m.dateConnexion.Year == anneeFin && (moisFin == null || m.dateConnexion.Month < moisFin)) ||
                                            (m.dateConnexion.Year == anneeFin && m.dateConnexion.Month == moisFin && (jourFin == null || m.dateConnexion.Day <= jourFin))
                                        )
                                       )
                                       ).Count());
        }
Esempio n. 14
0
        public static IQueryable <Abonnement> LesAbonnements(int?anneeDebut, int?moisDebut, int?jourDebut, int?anneeFin, int?moisFin, int?jourFin)
        {
            ClubContactContext db = new ClubContactContext();

            return(db.Abonnements.Where(m =>
                                        (anneeDebut == null ? true : false ||
                                         (
                                             (m.datePaiement.Year > anneeDebut) ||
                                             (m.datePaiement.Year == anneeDebut && (moisDebut == null || m.datePaiement.Month > moisDebut)) ||
                                             (m.datePaiement.Year == anneeDebut && m.datePaiement.Month == moisDebut && (jourDebut == null || m.datePaiement.Day >= jourDebut))
                                         )

                                        ) &&
                                        (anneeFin == null ? true : false ||
                                         (
                                             (m.datePaiement.Year < anneeFin) ||
                                             (m.datePaiement.Year == anneeFin && (moisFin == null || m.datePaiement.Month < moisFin)) ||
                                             (m.datePaiement.Year == anneeFin && m.datePaiement.Month == moisFin && (jourFin == null || m.datePaiement.Day <= jourFin))
                                         )
                                        )
                                        ));
        }
Esempio n. 15
0
        public static int NbDesabonnement(int?anneeDebut, int?moisDebut, int?jourDebut, int?anneeFin, int?moisFin, int?jourFin)
        {
            ClubContactContext db = new ClubContactContext();

            return(db.Abonnements.Where(m => (m.renouveler == false) &&
                                        (anneeDebut == null ? true : false ||
                                         (
                                             (m.datePaiement.Year > anneeDebut) ||
                                             (m.datePaiement.Year == anneeDebut && (moisDebut == null || m.datePaiement.Month > moisDebut)) ||
                                             (m.datePaiement.Year == anneeDebut && m.datePaiement.Month == moisDebut && (jourDebut == null || m.datePaiement.Day >= jourDebut))
                                         )

                                        ) &&
                                        (anneeFin == null ? true : false ||
                                         (
                                             (m.datePaiement.Year < anneeFin) ||
                                             (m.datePaiement.Year == anneeFin && (moisFin == null || m.datePaiement.Month < moisFin)) ||
                                             (m.datePaiement.Year == anneeFin && m.datePaiement.Month == moisFin && (jourFin == null || m.datePaiement.Day <= jourFin))
                                         )
                                        )
                                        ).Count());
        }
Esempio n. 16
0
        public static double RevenuTVQ(int?forfait, int?anneeDebut, int?moisDebut, int?jourDebut, int?anneeFin, int?moisFin, int?jourFin)
        {
            ClubContactContext db = new ClubContactContext();

            return(db.Abonnements.Where(m => (forfait == null ? true : false || m.typeAbonnement == forfait) &&
                                        (anneeDebut == null ? true : false ||
                                         (
                                             (m.datePaiement.Year > anneeDebut) ||
                                             (m.datePaiement.Year == anneeDebut && (moisDebut == null || m.datePaiement.Month > moisDebut)) ||
                                             (m.datePaiement.Year == anneeDebut && m.datePaiement.Month == moisDebut && (jourDebut == null || m.datePaiement.Day >= jourDebut))
                                         )

                                        ) &&
                                        (anneeFin == null ? true : false ||
                                         (
                                             (m.datePaiement.Year < anneeFin) ||
                                             (m.datePaiement.Year == anneeFin && (moisFin == null || m.datePaiement.Month < moisFin)) ||
                                             (m.datePaiement.Year == anneeFin && m.datePaiement.Month == moisFin && (jourFin == null || m.datePaiement.Day <= jourFin))
                                         )
                                        )
                                        ).Sum(m => (double?)m.prixTVQ) ?? 0.00);
        }
Esempio n. 17
0
        public static string ParticiperActivite(int noActivite, int noMembre)
        {
            try
            {
                ClubContactContext db = new ClubContactContext();

                string etaitDejaParticipant;

                Membre   leMembreCo = db.Membres.Where(m => m.noMembre == noMembre).FirstOrDefault();
                Activite lActivite  = db.Activites.Where(a => a.noActivite == noActivite).Include(a => a.membresParticipants).FirstOrDefault();

                if (lActivite.membresParticipants.Contains(leMembreCo))
                {
                    lActivite.membresParticipants.Remove(leMembreCo);
                    etaitDejaParticipant = "True";
                }
                else
                {
                    lActivite.membresParticipants.Add(leMembreCo);
                    etaitDejaParticipant = "False";
                }

                db.SaveChanges();

                return(etaitDejaParticipant);
            }
            catch (Exception e)
            {
                Dictionary <string, string> parametres = new Dictionary <string, string>()
                {
                    { "noActivite", noActivite.ToString() },
                    { "noMembre", noMembre.ToString() }
                };
                throw Utilitaires.templateException("ParticiperActivite", "Classe Utilitaires.js", "Requête LINQ n'a pas fonctionnée.", e, parametres);
            }
        }
Esempio n. 18
0
        public static int NbAbonnement(int?forfait, int?anneeDebut, int?moisDebut, int?jourDebut, int?anneeFin, int?moisFin, int?jourFin)
        {
            ClubContactContext db = new ClubContactContext();

            return(db.Abonnements.Where(m => (forfait == null ? true : false || m.typeAbonnement == forfait) &&

                                        //Gestion des dates
                                        (anneeDebut == null ? true : false ||
                                         (
                                             (m.datePaiement.Year > anneeDebut) ||
                                             (m.datePaiement.Year == anneeDebut && (moisDebut == null || m.datePaiement.Month > moisDebut)) ||
                                             (m.datePaiement.Year == anneeDebut && m.datePaiement.Month == moisDebut && (jourDebut == null || m.datePaiement.Day >= jourDebut))
                                         )

                                        ) &&
                                        (anneeFin == null ? true : false ||
                                         (
                                             (m.datePaiement.Year < anneeFin) ||
                                             (m.datePaiement.Year == anneeFin && (moisFin == null || m.datePaiement.Month < moisFin)) ||
                                             (m.datePaiement.Year == anneeFin && m.datePaiement.Month == moisFin && (jourFin == null || m.datePaiement.Day <= jourFin))
                                         )
                                        )
                                        ).Count());
        }
Esempio n. 19
0
        public static IQueryable <Activite> RechercheActiviteAvecCriteres(int noMembreCo, RechercheActiviteViewModel rechercheActivite)
        {
            ClubContactContext db = new ClubContactContext();

            IQueryable <Activite> listActiviteTrouves = db.Activites;

            if (noMembreCo != -1)
            {
                Membre leMembreCo = db.Membres.Where(m => m.noMembre == noMembreCo).FirstOrDefault();

                if (leMembreCo != null)
                {
                    //On trouve uniquement les activités compatibles.
                    listActiviteTrouves = listActiviteTrouves
                                          .Where(a => //Si le membre organisateur est le membre connecté, on affiche l'activité...
                                                 (a.noMembreOrganisateur == leMembreCo.noMembre) ? true :
                                                 (
                                                     ((a.hommeSeulement == null ? true : false) || (a.hommeSeulement == leMembreCo.homme)) &&
                                                     ((a.ageMax == null ? true : false) || leMembreCo.age <= a.ageMax) &&
                                                     ((a.ageMin == null ? true : false) || leMembreCo.age >= a.ageMin)
                                                 )
                                                 );

                    //Critères Communs
                    listActiviteTrouves = listActiviteTrouves
                                          .Where(a => //Activites que j'organise
                                                 ((rechercheActivite.organiseParMoi == false ? true : (a.membreOrganisateur.noMembre == noMembreCo))) &&
                                                      //Uniquement ActivitesQueJeParticipe
                                                 ((rechercheActivite.uniquementActivitesQueJeParticipe == false ? true : (a.membresParticipants.Select(m => m.noMembre).Contains((int)noMembreCo)))) &&
                                                      //Ne pas voir les activités dont le membre organisateur nous a dans sa liste noire
                                                 (!a.membreOrganisateur.listeNoire.Select(m => m.noMembre).Contains(leMembreCo.noMembre))
                                                 );
                }
            }

            listActiviteTrouves = listActiviteTrouves
                                  .Where(a => ((rechercheActivite.noTheme == null ? true : false) || a.noTheme == rechercheActivite.noTheme)
                                         );

            //Ne doit pas changé de place, car c'est fait avec les critères
            IQueryable <Activite> listActiviteTrouvesPourDates = listActiviteTrouves
                                                                 .Where(a => (DbFunctions.TruncateTime(DateTime.Now) <= DbFunctions.TruncateTime(a.date))
                                                                        );

            listActiviteTrouves = listActiviteTrouves
                                  .Where(a => ((rechercheActivite.dateRecherche == null ? true : false) || DbFunctions.TruncateTime(a.date) == DbFunctions.TruncateTime(rechercheActivite.dateRecherche)) &&
                                         (rechercheActivite.activiteFuturs == true ? a.date >= DateTime.Now : a.date < DateTime.Now)
                                         );

            IQueryable <Activite> listActiviteTrouvesPreliminaire = listActiviteTrouves
                                                                    .Where(a => ((rechercheActivite.motCle == null ? true : false) || a.nom.ToLower().Contains(rechercheActivite.motCle.ToLower()))
                                                                           );

            if (listActiviteTrouvesPreliminaire.Count() == 0)
            {
                listActiviteTrouves = listActiviteTrouves
                                      .Where(a => ((rechercheActivite.motCle == null ? true : false) || (a.nom.ToLower().Contains(rechercheActivite.motCle.ToLower()) || a.description.ToLower().Contains(rechercheActivite.motCle.ToLower())))
                                             );

                listActiviteTrouvesPourDates = listActiviteTrouvesPourDates
                                               .Where(a => ((rechercheActivite.motCle == null ? true : false) || (a.nom.ToLower().Contains(rechercheActivite.motCle.ToLower()) || a.description.ToLower().Contains(rechercheActivite.motCle.ToLower())))
                                                      );
            }
            else
            {
                listActiviteTrouves = listActiviteTrouvesPreliminaire;

                listActiviteTrouvesPourDates = listActiviteTrouvesPourDates
                                               .Where(a => ((rechercheActivite.motCle == null ? true : false) || a.nom.ToLower().Contains(rechercheActivite.motCle.ToLower()))
                                                      );
            }

            rechercheActivite.datesOuIlYAActivites = listActiviteTrouvesPourDates.Select(m => DbFunctions.TruncateTime(m.date).Value).Distinct().ToList();

            rechercheActivite.nbActivitesTrouvesTotal = listActiviteTrouves.Count();

            if (rechercheActivite.activiteFuturs == true)
            {
                listActiviteTrouves = listActiviteTrouves.OrderBy(m => m.date).ThenBy(a => a.cout).ThenBy(a => a.noActivite);
            }
            else
            {
                listActiviteTrouves = listActiviteTrouves.OrderByDescending(m => m.date).ThenBy(a => a.cout).ThenBy(a => a.noActivite);
            }

            return(listActiviteTrouves);
        }
Esempio n. 20
0
    public ActionResult LoginAdmin(LoginViewModel model, string returnUrl)
    {
        ClubContactContext db = new ClubContactContext();

        ViewBag.ReturnUrl = returnUrl;

        ViewBag.Title = "Se connecter administrateur";
        if (!ModelState.IsValid)
        {
            return(View(model));
        }
        if (!ValidateUserAdmin(model.Login, model.Password))
        {
            ModelState.AddModelError(string.Empty, "Le nom d'utilisateur ou le mot de passe est incorrect.");
            return(View(model));
        }

        // L'authentification est réussie,
        // injecter les informations utilisateur dans le cookie d'authentification :
        var userClaims = new List <Claim>();

        try
        {
            //on trouve le membre
            CompteAdmin leCompte = db.CompteAdmins
                                   .Where(m => m.nomCompte.ToLower() == model.Login.ToLower())
                                   .FirstOrDefault();

            if (leCompte != null)
            {
                // Identifiant utilisateur :
                userClaims.Add(new Claim(ClaimTypes.Name, leCompte.nomCompte));
                userClaims.Add(new Claim(ClaimTypes.NameIdentifier, leCompte.nomCompte));
            }
            else
            {
                throw new Exception("Erreur: Le membre recherché est égale à null à la suite de la requête LINQ.");
            }

            //-------------------------création du cookie-------------------------------------------
            HttpCookie myCookie = new HttpCookie("Admin");

            myCookie["niveauDePermission"] = leCompte.permission.nomNiveauDePermissionAdmin.ToString();

            if (model.seSouvenirDeMoi)
            {
                myCookie.Expires = new System.DateTime(2020, 1, 1);
            }

            Response.Cookies.Add(myCookie);
        }
        catch (Exception e)
        {
            Exception exc = new Exception("Action: Login (POST), Contrôleur: Authentification ; Erreur potentielle: Requête LINQ n'a pas fonctionnée. ; login Membre : " + model.Login + ".", e);
            Elmah.ErrorSignal.FromCurrentContext().Raise(exc);

            ModelState.AddModelError(string.Empty, "Une erreur s'est produite lors de la connexion, veuillez réessayer.");
            return(View(model));
        }

        // Rôles utilisateur :
        userClaims.AddRange(LoadRoles(model.Login, true));
        var claimsIdentity        = new ClaimsIdentity(userClaims, DefaultAuthenticationTypes.ApplicationCookie);
        var ctx                   = Request.GetOwinContext();
        var authenticationManager = ctx.Authentication;
        var properties            = new AuthenticationProperties {
            IsPersistent = model.seSouvenirDeMoi
        };

        authenticationManager.SignIn(properties, claimsIdentity);

        //?? à revoir une fois que ça fonctionne, avec la prof
        // Rediriger vers l'url d'origine :
        if (Url.IsLocalUrl(ViewBag.ReturnUrl))
        {
            return(Redirect(ViewBag.ReturnUrl));
        }

        // Par défaut, rediriger vers la page d'accueil :
        return(RedirectToAction("Gestion", "Admin"));
    }
Esempio n. 21
0
 public ActivitesController()
 {
     db = new ClubContactContext();
 }
Esempio n. 22
0
        public static int NbMembresSupprimeAdmin()
        {
            ClubContactContext db = new ClubContactContext();

            return(db.Membres.Where(m => m.compteSupprimeParAdmin == true).Count());
        }
Esempio n. 23
0
    public ActionResult Login(LoginViewModel model, string returnUrl)
    {
        ClubContactContext db = new ClubContactContext();

        ViewBag.ReturnUrl = returnUrl;

        ViewBag.Title = "Se connecter";
        if (!ModelState.IsValid)
        {
            return(View(model));
        }
        if (!ValidateUser(model.Login, model.Password))
        {
            ModelState.AddModelError(string.Empty, "Le courriel ou le mot de passe est incorrect.");
            return(View(model));
        }

        // L'authentification est réussie,
        // injecter les informations utilisateur dans le cookie d'authentification :
        var userClaims = new List <Claim>();


        if (model.Login.ToLower() != "admin")
        {
            try
            {
                //on trouve le membre
                Membre leMembre = db.Membres
                                  .Where(m => m.courriel.ToLower() == model.Login.ToLower() && m.compteSupprimeParAdmin == null && m.dateSuppressionDuCompte == null)
                                  .FirstOrDefault();

                //Gestion de l'abonnement (vérifie qu'il est encore premium)
                Abonnement abonnementActuel = db.Abonnements
                                              .Where(m => (m.noMembre == leMembre.noMembre) &&
                                                     (m.dateDebut < DateTime.Now) &&
                                                     (m.dateFin > DateTime.Now)
                                                     ).AsNoTracking().FirstOrDefault();
                if (abonnementActuel == null)
                {
                    //Si le membre est premium mais que son abonnement est terminé...
                    if (leMembre.premium)
                    {
                        abonnementActuel.renouveler = false;
                        leMembre.premium            = false;

                        db.SaveChanges();
                    }
                }
                else if ((abonnementActuel.dateFin.Date - DateTime.Now.Date) <= new TimeSpan(1, 0, 0, 0))
                {
                    //Afficher message qu'il reste juste 1 journée à son abonnement
                }

                if (leMembre != null)
                {
                    // Identifiant utilisateur :
                    userClaims.Add(new Claim(ClaimTypes.Name, leMembre.surnom));
                    userClaims.Add(new Claim(ClaimTypes.NameIdentifier, leMembre.surnom));
                }
                else
                {
                    throw new Exception("Erreur: Le membre recherché est égale à null à la suite de la requête LINQ.");
                }

                //-------------------------création du cookie-------------------------------------------
                HttpCookie myCookie = new HttpCookie("SiteDeRencontre");

                myCookie["noMembre"]        = leMembre.noMembre.ToString();
                myCookie["premium"]         = leMembre.premium ? "true" : "false";
                myCookie["seSouvenirDeMoi"] = model.seSouvenirDeMoi ? "true" : "false";

                /*---------pour analytics---------*/
                HttpCookie analytics = new HttpCookie("AnalyticsCC");
                analytics.Expires = DateTime.Now.AddDays(-1);
                Response.Cookies.Add(analytics);
                /*---------pour analytics---------*/

                if (model.seSouvenirDeMoi)
                {
                    myCookie.Expires = new System.DateTime(2020, 1, 1);
                }

                Response.Cookies.Add(myCookie);
            }
            catch (Exception e)
            {
                Exception exc = new Exception("Action: Login (POST), Contrôleur: Authentification ; Erreur potentielle: Requête LINQ n'a pas fonctionnée. ; login Membre : " + model.Login + ".", e);
                Elmah.ErrorSignal.FromCurrentContext().Raise(exc);

                ModelState.AddModelError(string.Empty, "Une erreur s'est produite lors de la connexion, veuillez réessayer.");
                return(View(model));
            }
        }
        else
        {
            // Identifiant utilisateur :
            userClaims.Add(new Claim(ClaimTypes.Name, model.Login));
            userClaims.Add(new Claim(ClaimTypes.NameIdentifier, model.Login));
        }

        // Rôles utilisateur :
        userClaims.AddRange(LoadRoles(model.Login));
        var claimsIdentity        = new ClaimsIdentity(userClaims, DefaultAuthenticationTypes.ApplicationCookie);
        var ctx                   = Request.GetOwinContext();
        var authenticationManager = ctx.Authentication;
        var properties            = new AuthenticationProperties {
            IsPersistent = model.seSouvenirDeMoi
        };

        authenticationManager.SignIn(properties, claimsIdentity);

        //?? à revoir une fois que ça fonctionne, avec la prof
        // Rediriger vers l'url d'origine :
        if (Url.IsLocalUrl(ViewBag.ReturnUrl))
        {
            return(Redirect(ViewBag.ReturnUrl));
        }

        // Par défaut, rediriger vers la page d'accueil :
        return(RedirectToAction("Home", "Home"));
    }
Esempio n. 24
0
 public HomeController()
 {
     db = new ClubContactContext();
 }