Exemplo n.º 1
0
        protected void SearchButton_Click(object sender, EventArgs ev)
        {
            // Cette recherche affichera dans une grille le ou les employés correspondant aux critères

            // Vérifier que le url de la forme à charger après la recherche existe
            //var transferUrl = HttpUtility.UrlEncode(Request.QueryString["TransferUrl"]);
            var transferUrl = Request.QueryString["TransferUrl"];

            if (String.IsNullOrEmpty(transferUrl))
            {
                UctMessage.Show(UserControls.MessageType.Error, @"Aucune suite n'est prévue après la recherche. Recommencer à partir du menu principal.");
            }
            else
            {
                // Remplir Dto
                EmployeSearchDto emp = FillEmpSearchDto(transferUrl);
                // Vérifier que la recherche est valide
                List <String>  errorMessages = new List <string>(); // Pour conserver les messages d'erreurs éventuels
                EmployeManager empMan        = new EmployeManager();
                if (empMan.IsSearchValid(emp, ref errorMessages))
                {
                    //Effacer des éventuels message précédents
                    UctMessage.Hide();
                    //Afficher les résultat dans le GridView
                    GridViewEmployes.Visible    = true;
                    GridViewEmployes.DataSource = empMan.GetSearchResult(emp);
                    GridViewEmployes.DataBind();
                }
                else
                {
                    HideGridView();
                    UctMessage.Show(UserControls.MessageType.Error, @"Oops... quelques problèmes sont survenues:", errorMessages);
                }
            }
        }
Exemplo n.º 2
0
 public int GetSearchCount(EmployeSearchDto emp)
 {
     //Nombre d'employés pour une compangie par rapport aux critères de recherche précisés
     using (var context = new PayrollEntities())
     {
         //Convertir l'ensemble des employés en IQueryable (équivaut à faire un "select * from <table>" en sql)
         var queryableEmp = context.Employes.AsQueryable();
         //Choisir les employés actifs de la compagnie (la base n'est pas intérrogée tant que "ToList" n'est pas appelée)
         queryableEmp = queryableEmp.Where(x => (x.StatutEmployeID == emp.StatutEmployeID) && (x.CompagnieID == emp.CompagnieID));
         // Ajouter les autres critères un par un s'ils on été renseignés dans le formulaire
         if (!String.IsNullOrEmpty(emp.Phone1))
         {
             queryableEmp = queryableEmp.Where(x => x.Phone1.Contains(emp.Phone1));
         }
         if (!String.IsNullOrEmpty(emp.Nom))
         {
             queryableEmp = queryableEmp.Where(x => x.Nom.Contains(emp.Nom));
         }
         if (!String.IsNullOrEmpty(emp.Prenom))
         {
             queryableEmp = queryableEmp.Where(x => x.Prenom.Contains(emp.Prenom));
         }
         if (!String.IsNullOrEmpty(emp.CIN))
         {
             queryableEmp = queryableEmp.Where(x => x.Cin.Contains(emp.CIN));
         }
         // Renvoyer le nombre d'enregistrements trouvé
         return(queryableEmp.Count());
     }
 }
Exemplo n.º 3
0
        private EmployeSearchDto FillEmpSearchDto(String transferUrl)
        {
            EmployeSearchDto emp = new EmployeSearchDto();

            emp.Phone1          = TxbPhone1.Text.Trim();
            emp.Nom             = TxbNom.Text.Trim();
            emp.Prenom          = TxbPrenom.Text.Trim();
            emp.CIN             = TxbCin.Text.Trim();
            emp.CompagnieID     = SessionHelper.GetCompanyIDFromSession(HttpContext.Current);
            emp.StatutEmployeID = (int)LookupEnum.StatutEmploye.Actif;
            emp.Url             = transferUrl; // page de transfer une fois l'employé trouvé
            return(emp);
        }
Exemplo n.º 4
0
        public IEnumerable <EmployeSearchDto> GetSearchResult(EmployeSearchDto emp)
        {
            //Renvoyer les résultats de la recherche, on suppose que la recherche est valide
            EmployeRepository empRep = new EmployeRepository();
            IEnumerable <EmployeSearchDto> empResults = empRep.GetSearchResult(emp);

            // Renseigner les champs "calculés" et protéger le Url
            UrlSecurity usec = new UrlSecurity();

            foreach (EmployeSearchDto e in empResults)
            {
                e.NomPrenom = e.Nom + ", " + e.Prenom;
                // Protéger le Url avec un paramètre (Digest)
                e.Url = usec.CreateTamperProofUrl(emp.Url, String.Empty, "Id=" + e.EmployeID.ToString());
                //e.Url = emp.Url + "?Id=" + e.EmployeID.ToString(); // Url de navigation
            }
            return(empResults);
        }
Exemplo n.º 5
0
 public IEnumerable <EmployeSearchDto> GetSearchResult(EmployeSearchDto emp)
 {
     //Retrouve les employés d'une compangie correspondant aux critères de recherche précisés
     // en utilisant des "Query Expressions" à la place de "LINQ to Entities" (synthaxe différente, mêmes effets)
     using (var context = new PayrollEntities())
     {
         //Convertir l'ensemble des employés en IQueryable (équivaut à faire un "select * from <table>" en sql)
         var queryableEmp = context.Employes.AsQueryable();
         //Choisir les employés actifs de la compagnie (la base n'est pas intérrogée tant que "ToList" n'est pas appelée)
         queryableEmp = queryableEmp.Where(x => (x.StatutEmployeID == emp.StatutEmployeID) && (x.CompagnieID == emp.CompagnieID));
         // Ajouter les autres critères un par un s'ils on été renseignés dans le formulaire
         if (!String.IsNullOrEmpty(emp.Phone1))
         {
             queryableEmp = queryableEmp.Where(x => x.Phone1.Contains(emp.Phone1));
         }
         if (!String.IsNullOrEmpty(emp.Nom))
         {
             queryableEmp = queryableEmp.Where(x => x.Nom.Contains(emp.Nom));
         }
         if (!String.IsNullOrEmpty(emp.Prenom))
         {
             queryableEmp = queryableEmp.Where(x => x.Prenom.Contains(emp.Prenom));
         }
         if (!String.IsNullOrEmpty(emp.CIN))
         {
             queryableEmp = queryableEmp.Where(x => x.Cin.Contains(emp.CIN));
         }
         // Trier par ordre alphabétique du Nom et du Prenom
         queryableEmp.OrderBy(x => x.Nom).ThenBy(x => x.Prenom);
         // Renvoyer le résultat sous forme d'une liste d'objets de type EmployeSearchDto
         return(queryableEmp.Select(y => new EmployeSearchDto
         {
             Nom = y.Nom,
             Prenom = y.Prenom,
             NumeroEmploye = y.NumeroEmploye,
             Phone1 = y.Phone1,
             CIN = y.Cin,
             CompagnieID = y.CompagnieID,
             StatutEmployeID = y.TypeEmployeID,
             EmployeID = y.EmployeID
         }).ToList());
     }
 }
Exemplo n.º 6
0
        public bool IsSearchValid(EmployeSearchDto emp, ref List <string> ErrorMessages)
        {
            //Vérifier que le résultat de la recherche est en dessous du nombre maximal permis
            bool isValid             = true;
            EmployeRepository empRep = new EmployeRepository();
            int resultCount          = empRep.GetSearchCount(emp);

            if (resultCount > LookupConst.EmpSearchMax)
            {
                isValid = false;
                ErrorMessages.Add(@"Le nombre d'enregistrements correspondant à la recherche est trop grand. Recommencer avec des critères plus détaillés.");
            }
            else
            {
                if (resultCount == 0)
                {
                    isValid = false;
                    ErrorMessages.Add(@"Aucun enregistrement n'a pu être trouvé. Recommencer avec d'autres critères.");
                }
            }
            return(isValid);
        }