コード例 #1
0
        public ActionResult SearchResultsRead([DataSourceRequest] DataSourceRequest request)
        {
            EmployeeSearchAdditionalData employeeSearchAdditionalData = new EmployeeSearchAdditionalData();

            TryUpdateModel(employeeSearchAdditionalData);
            int searchType = FindSearchType(employeeSearchAdditionalData);

            if (searchType == 0)
            {
                return(null);
            }

            string domain          = ConfigurationManager.AppSettings["LDAPDomain"];
            string serviceUser     = ConfigurationManager.AppSettings["ServiceUser"];
            string servicePassword = ConfigurationManager.AppSettings["ServicePassword"];

            LdapDirectoryIdentifier ldapDirectoryIdentifier = new LdapDirectoryIdentifier(domain);
            NetworkCredential       myCredentials           = new NetworkCredential(serviceUser, servicePassword);

            LdapConnection connection = new LdapConnection(ldapDirectoryIdentifier, myCredentials, AuthType.Basic);

            connection.SessionOptions.ProtocolVersion = 3;
            DirectoryContext context = new DirectoryContext(connection);

            var orders = context.Query <User>();

            switch (searchType)
            {
            case 1:
                orders = orders.Where(u => (u.FirstName.Contains(employeeSearchAdditionalData.Keyword)) || (u.LastName.Contains(employeeSearchAdditionalData.Keyword)));
                break;

            case 2:
                orders = orders.Where(u => (u.CountryCode == employeeSearchAdditionalData.CountryCode1));
                break;

            case 3:
                orders = orders.Where(u => ((u.FirstName.Contains(employeeSearchAdditionalData.Keyword)) || (u.LastName.Contains(employeeSearchAdditionalData.Keyword))) &&
                                      (u.CountryCode == employeeSearchAdditionalData.CountryCode1));
                break;

            case 4:
                if (!String.IsNullOrWhiteSpace(employeeSearchAdditionalData.FirstName))
                {
                    orders = orders.Where(u => (u.FirstName.Contains(employeeSearchAdditionalData.FirstName)));
                }
                if (!String.IsNullOrWhiteSpace(employeeSearchAdditionalData.LastName))
                {
                    orders = orders.Where(u => (u.LastName.Contains(employeeSearchAdditionalData.LastName)));
                }
                if (!String.IsNullOrWhiteSpace(employeeSearchAdditionalData.CountryCode2))
                {
                    orders = orders.Where(u => (u.CountryCode == employeeSearchAdditionalData.CountryCode2));
                }
                if (!String.IsNullOrWhiteSpace(employeeSearchAdditionalData.Location))
                {
                    orders = orders.Where(u => (u.Location == employeeSearchAdditionalData.Location));
                }
                if (!String.IsNullOrWhiteSpace(employeeSearchAdditionalData.PositionTitle))
                {
                    orders = orders.Where(u => (u.PositionTitle.Contains(employeeSearchAdditionalData.PositionTitle)));
                }
                if (!String.IsNullOrWhiteSpace(employeeSearchAdditionalData.FunctionalArea))
                {
                    orders = orders.Where(u => (u.FunctionalArea == employeeSearchAdditionalData.FunctionalArea));
                }
                break;
            }

            orders = orders.Where(c => (c.Status == "Actif"));

            var total = orders.Count();

            orders = orders.ApplyOrdersSorting(request.Groups, request.Sorts);

            var x = orders.ApplyOrdersPaging(request.Page, request.PageSize, total);

            var result = new DataSourceResult()
            {
                Data  = x,
                Total = total
            };

            return(Json(result));
        }
コード例 #2
0
        public int FindSearchType(EmployeeSearchAdditionalData employeeSearchAdditionalData)
        {
            //Blank
            if (
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.Keyword) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.CountryCode1) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.FirstName) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.LastName) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.CountryCode2) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.Location) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.PositionTitle) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.FunctionalArea)
                )
            {
                return(0);
            }
            //Keyword
            if (
                !string.IsNullOrWhiteSpace(employeeSearchAdditionalData.Keyword) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.CountryCode1) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.FirstName) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.LastName) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.CountryCode2) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.Location) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.PositionTitle) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.FunctionalArea)
                )
            {
                return(1);
            }
            //Country
            if (
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.Keyword) &&
                !string.IsNullOrWhiteSpace(employeeSearchAdditionalData.CountryCode1) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.FirstName) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.LastName) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.CountryCode2) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.Location) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.PositionTitle) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.FunctionalArea)
                )
            {
                return(2);
            }
            //Keyword and Country
            if (
                !string.IsNullOrWhiteSpace(employeeSearchAdditionalData.Keyword) &&
                !string.IsNullOrWhiteSpace(employeeSearchAdditionalData.CountryCode1) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.FirstName) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.LastName) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.CountryCode2) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.Location) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.PositionTitle) &&
                string.IsNullOrWhiteSpace(employeeSearchAdditionalData.FunctionalArea)
                )
            {
                return(3);
            }
            //First
            if (
                (string.IsNullOrWhiteSpace(employeeSearchAdditionalData.Keyword) &&
                 string.IsNullOrWhiteSpace(employeeSearchAdditionalData.CountryCode1)) &&
                (
                    !string.IsNullOrWhiteSpace(employeeSearchAdditionalData.FirstName) ||
                    !string.IsNullOrWhiteSpace(employeeSearchAdditionalData.LastName) ||
                    !string.IsNullOrWhiteSpace(employeeSearchAdditionalData.CountryCode2) ||
                    !string.IsNullOrWhiteSpace(employeeSearchAdditionalData.Location) ||
                    !string.IsNullOrWhiteSpace(employeeSearchAdditionalData.PositionTitle) ||
                    !string.IsNullOrWhiteSpace(employeeSearchAdditionalData.FunctionalArea))
                )
            {
                return(4);
            }

            return(0);
        }