public ICollection <User> Search(UserSearchType SearchType, string value)
        {
            List <InventoryApp.Entities.User> List = new List <Entities.User>();
            var contaxt = new DataLayer.InventoryDBContext();

            switch (SearchType)
            {
            case UserSearchType.UserId:
            {
                int id = 0;
                if (int.TryParse(value, out id))
                {
                    var _user = contaxt.Users.Where(p => p.UserId == id).ToList();
                    List.AddRange(_user);
                }
                return(List);
            }

            case UserSearchType.RegisterDate:
            {
                var _user = contaxt.Users.Where(p => p.RegisterDate == DateTime.Parse(value)).ToList();
                List.AddRange(_user);
                return(List);
            }

            case UserSearchType.Username:
            {
                var _user = contaxt.Users.Where(p => p.Username.Contains(value)).ToList();
                List.AddRange(_user);
                return(List);
            }

            case UserSearchType.All:
            {
                var _user = contaxt.Users.Where(p => p.RegisterDate == DateTime.Parse(value)).ToList();
                List.AddRange(_user);
                _user = contaxt.Users.Where(p => p.Username.Contains(value)).ToList();
                List.AddRange(_user);
                int id = 0;
                if (int.TryParse(value, out id))
                {
                    _user = contaxt.Users.Where(p => p.UserId == id).ToList();
                    List.AddRange(_user);
                }
                return(List);
            }

            default:
            {
                return(null);
            }
            }
        }
Example #2
0
        /// <summary>
        ///Get a player matching the term on that platform
        /// </summary>
        /// <param name="player">The name of the player you're searching for</param>
        /// <param name="platform">The name of the platform you're searching on</param>
        /// <param name="userSearchType">The type of search to perform</param>
        /// <returns>Player found</returns>
        public async Task <Player> GetPlayer(string player, Platform platform, UserSearchType userSearchType = UserSearchType.Name)
        {
            string json;

            if (userSearchType == UserSearchType.Name)
            {
                json = await GetAsync($"https://public-ubiservices.ubi.com/v2/profiles?nameOnPlatform={player}&platformType={platform.ToStringValue()}");
            }
            else
            {
                json = await GetAsync($"https://public-ubiservices.ubi.com/v2/users/{player}/profiles?platformType={platform.ToStringValue()}");
            }

            var data = JsonConvert.DeserializeObject <JObject>(json);

            return(data["profiles"].ToObject <IEnumerable <Player> >().FirstOrDefault());
        }
        public ActionResult UserSearchSubmit(FormCollection collection)
        {
            if (Session["CurrentUser"] != null)
            {
                FoursquareUser currentUser = Session["CurrentUser"] as Cuatro.Common.FoursquareUser;
                string         accessToken = currentUser.AccessToken;

                Users          myUser = new Users(currentUser, accessToken);
                UserSearchType type   = UserSearchType.twitter;
                // TODO: Consider creating its own class (UserSearchResult or something) to order by relevance/etc
                List <FoursquareUser> resultList = new List <FoursquareUser>();
                switch (int.Parse(collection.GetValue("typeIndex").ToString()))
                {
                case 1:
                    type = UserSearchType.phone;
                    break;

                case 2:
                    type = UserSearchType.email;
                    break;

                case 3:
                    type = UserSearchType.fbid;
                    break;

                case 4:
                    type = UserSearchType.twitter;
                    break;
                }

                resultList = myUser.SearchUser(type, collection.GetValue("query").ToString());

                if (resultList != null)
                {
                    return(PartialView("SearchResults", resultList));
                }
                else
                {
                    return(PartialView());
                }
            }

            return(RedirectToAction("LogOn", "FoursquareOauth"));
        }
        public IQueryable<User> GetUsersByCriteria(UserSearchType searchType, string userName, string roleName)
        {
            IQueryable<User> users = null;

            switch (searchType)
            {
                case UserSearchType.None:
                    users = rep.GetAllUsers();
                    break;
                case UserSearchType.ByName:
                    users = rep.GetAllUsers().Where(u => u.UserName == userName);
                    break;
                case UserSearchType.ByRole:
                    users = rep.GetAllUsers().Where(u => u.Roles.Select(r => r.RoleName == roleName).Count() > 0);
                    break;
            }

            return users;
        }
 private IList <UserListDTO> getUsers(UserSearchType searchType, string name, string role)
 {
     try
     {
         GetUsersRequest request = new GetUsersRequest();
         request.SearchType = searchType;
         request.Username   = name;
         request.Rolename   = role;
         GetUsersResponse response = Service.GetUsersByCriteria(request);
         return(response.Users);
     }
     catch (Exception ex)
     {
         if (ExceptionPolicy.HandleException(ex, "PL Policy"))
         {
             throw;
         }
         return(new List <UserListDTO>());
     }
 }
        public IQueryable <User> GetUsersByCriteria(UserSearchType searchType, string userName, string roleName)
        {
            IQueryable <User> users = null;

            switch (searchType)
            {
            case UserSearchType.None:
                users = rep.GetAllUsers();
                break;

            case UserSearchType.ByName:
                users = rep.GetAllUsers().Where(u => u.UserName == userName);
                break;

            case UserSearchType.ByRole:
                users = rep.GetAllUsers().Where(u => u.Roles.Select(r => r.RoleName == roleName).Count() > 0);
                break;
            }

            return(users);
        }
        /// <summary>
        /// Requests multi users from the PUBG Developer API
        /// </summary>
        /// <param name="APIKey">The API key to use during the request</param>
        /// <param name="PlatformRegion">The Platform-Region to search (i.e pc-na, xbox-eu)</param>
        /// <param name="ID">The list of PUBG Names or AccountIDs to search</param>
        /// <param name="SearchType"></param>
        /// <returns></returns>
        public List <APIUser> RequestMultiUser(string APIKey, string PlatformRegion, List <string> ID, UserSearchType SearchType = UserSearchType.PUBGName)
        {
            string filterstring = string.Empty;

            switch (SearchType)
            {
            case UserSearchType.PUBGName:
                filterstring = "?filter[playerNames]=";
                break;

            case UserSearchType.AccountID:
                filterstring = "?filter[playerIds]=";
                break;
            }


            List <APIUser> users  = new List <APIUser>();
            APIStatus      status = new APIStatus();

            if (status.bIsOnline)
            {
                try
                {
                    string APIURL         = "https://api.playbattlegrounds.com/shards/" + PlatformRegion + "/players" + filterstring + string.Join(",", ID.ToArray());
                    var    webRequest     = WebRequest.Create(APIURL);
                    var    HTTPAPIRequest = (HttpWebRequest)webRequest;
                    HTTPAPIRequest.PreAuthenticate = true;
                    HTTPAPIRequest.Headers.Add("Authorization", "Bearer " + APIKey);
                    HTTPAPIRequest.Headers.Add("Access-Control-Allow-Origins", "*");
                    HTTPAPIRequest.Headers.Add("Access-Control-Expose-Headers", "Content-Length");
                    HTTPAPIRequest.Accept = "application/json";
                    using (var APIResponse = HTTPAPIRequest.GetResponse())
                    {
                        using (var responseStream = APIResponse.GetResponseStream())
                        {
                            var myStreamReader = new StreamReader(responseStream, Encoding.Default);
                            foreach (JObject jsonuser in JObject.Parse(myStreamReader.ReadToEnd())["data"])
                            {
                                users.Add(UserPhraser(jsonuser));
                            }
                        }
                    }
                }
                catch (WebException e)
                {
                    APIUser user = new APIUser
                    {
                        WebException = e
                    };
                    users.Add(user);
                }
            }
            return(users);
        }
Example #8
0
 public UserSearchFilters()
 {
     Period = UserSearchDatePeriod.All;
     Type   = UserSearchType.All;
 }
Example #9
0
        public static UserSearches GetSearchesFromDB(int userId, UserSearchDatePeriod period, UserSearchType type, int productId)
        {
            var newEntries = UserSearches.GetAllSearches(userId, "", period, type, productId);

            var model = new UserSearches();

            foreach (var search in newEntries)
            {
                var currentSearch = new UserSearch
                {
                    Text    = search["txt"].ToString(),
                    Date    = DateTime.Parse(search["search_date"].ToString()),
                    Id      = int.Parse(search["id"].ToString()),
                    Details = JsonConvert.DeserializeObject <SearchDetails>(search["details"].ToString(), new JsonSerializerSettings()
                    {
                        NullValueHandling = NullValueHandling.Include
                    })
                };

                if (currentSearch.Details.Cases != null)
                {
                    currentSearch.Details.Cases.DateFromShort             = currentSearch.Details.Cases.DateFrom.ToShortDateString();
                    currentSearch.Details.Cases.DateToShort               = currentSearch.Details.Cases.DateTo.ToShortDateString();
                    currentSearch.Details.Cases.DateDefaultByCultureShort = new DateTime(1, 1, 1).ToShortDateString();
                }

                if (currentSearch.Details.Law != null)
                {
                    currentSearch.Details.Law.DateFromShort             = currentSearch.Details.Law.DateFrom.ToShortDateString();
                    currentSearch.Details.Law.DateToShort               = currentSearch.Details.Law.DateTo.ToShortDateString();
                    currentSearch.Details.Law.DateDefaultByCultureShort = new DateTime(1, 1, 1).ToShortDateString();
                }

                if (currentSearch.Details.Finances != null)
                {
                    currentSearch.Details.Finances.DateFromShort             = currentSearch.Details.Finances.DateFrom.ToShortDateString();
                    currentSearch.Details.Finances.DateToShort               = currentSearch.Details.Finances.DateTo.ToShortDateString();
                    currentSearch.Details.Finances.DateDefaultByCultureShort = new DateTime(1, 1, 1).ToShortDateString();
                }


                model.Items.Add(currentSearch);
            }

            return(model);
        }
Example #10
0
        /// <summary>
        /// Request a single user or multipe users on the same platform and region
        /// </summary>
        /// <param name="PlayerID1">The first user to request</param>
        /// <param name="PlayerID2">The second user to request</param>
        /// <param name="PlayerID3">The thrid user to request</param>
        /// <param name="PlayerID4">The forth user to request</param>
        /// <param name="PlayerID5">The fifth user to request</param>
        /// <param name="PlayerID6">The sixth user to request</param>
        /// <param name="platformRegionShard">The Platform-Region shard to search in</param>
        /// <param name="userSearchType">The type of ID to search by</param>
        /// <returns></returns>
        public List <APIUser> RequestUser(string PlayerID1, PlatformRegionShard platformRegionShard = PlatformRegionShard.PC_NA, UserSearchType userSearchType = UserSearchType.PUBGName, string PlayerID2 = "", string PlayerID3 = "", string PlayerID4 = "", string PlayerID5 = "", string PlayerID6 = "")
        {
            List <string> IDsToSearch = new List <string>()
            {
                PlayerID1
            };

            if (PlayerID2 != "")
            {
                IDsToSearch.Add(PlayerID2);
            }
            if (PlayerID3 != "")
            {
                IDsToSearch.Add(PlayerID3);
            }
            if (PlayerID4 != "")
            {
                IDsToSearch.Add(PlayerID4);
            }
            if (PlayerID5 != "")
            {
                IDsToSearch.Add(PlayerID5);
            }
            if (PlayerID6 != "")
            {
                IDsToSearch.Add(PlayerID6);
            }
            APIRequest request = new APIRequest();

            return(request.RequestUser(APIKey, GetEnumDescription(platformRegionShard), IDsToSearch, userSearchType));
        }
Example #11
0
 public static IEnumerable <IDataRecord> GetAllSearches(int userId, string like, UserSearchDatePeriod period, UserSearchType type, int productId)
 {
     return(DB.GetUserSearches(userId, like, (int)period, (int)type, productId).Take(int.Parse(ConfigurationManager.AppSettings["UserSearchCount"])));
 }
Example #12
0
        /// <summary>
        /// Reuest multiple users using either their Account ID or their PUBG Name
        /// </summary>
        /// <param name="IDSToSearch">The list of names/ID to search</param>
        /// <param name="platformRegionShard">The Platform-Region to search</param>
        /// <param name="userSearchType">The type of search</param>
        /// <returns></returns>
        public List <APIUser> RequestMultiUser(List <string> IDSToSearch, PlatformRegionShard platformRegionShard, UserSearchType userSearchType = UserSearchType.PUBGName)
        {
            APIRequest request = new APIRequest();

            return(request.RequestMultiUser(APIKey, GetEnumDescription(platformRegionShard), IDSToSearch, userSearchType));
        }
Example #13
0
        /// <summary>
        /// Watch a single user or multipe users on the same platform and region
        /// </summary>
        /// <param name="PlayerID1">The first user to watch</param>
        /// <param name="PlayerID2">The second user to watch</param>
        /// <param name="PlayerID3">The thrid user to watch</param>
        /// <param name="PlayerID4">The forth user to watch</param>
        /// <param name="PlayerID5">The fifth user to watch</param>
        /// <param name="PlayerID6">The sixth user to watch</param>
        /// <param name="platformRegionShard">That platform to watch</param>
        /// <param name="userSearchType">The </param>
        /// <returns></returns>
        public APIWatchdog WatchUser(string PlayerID1, PlatformRegionShard platformRegionShard = PlatformRegionShard.PC_NA, UserSearchType userSearchType = UserSearchType.PUBGName, string PlayerID2 = "", string PlayerID3 = "", string PlayerID4 = "")
        {
            APIWatchdog   watchdog   = new APIWatchdog();
            List <string> IDsToWatch = new List <string>()
            {
                PlayerID1
            };

            if (PlayerID2 != "")
            {
                IDsToWatch.Add(PlayerID2);
            }
            if (PlayerID3 != "")
            {
                IDsToWatch.Add(PlayerID3);
            }
            if (PlayerID4 != "")
            {
                IDsToWatch.Add(PlayerID4);
            }
            watchdog.WatchMultiUser(APIKey, IDsToWatch, GetEnumDescription(platformRegionShard), userSearchType);
            return(watchdog);
        }
Example #14
0
        /// <summary>
        /// Returns an AirWatchUser class populated with the returned user if found.  Returns null if not found
        /// </summary>
        /// <param name="searchString">AirWatch Username or Email address of user to search</param>
        /// <param name="searchType"></param>
        /// <returns>An AirWatchUser or null</returns>
        public AirWatchUser SearchForUser(string searchString, UserSearchType searchType)
        {
            string apiEndpoint = string.Empty;
            if (searchType == UserSearchType.Username)
            {
                apiEndpoint = "/API/v1/system/users/search?username="******"/API/v1/system/users/search?email=" + searchString;
            }

            AirWatchUser userToReturn = new AirWatchUser();
            IRestResponse response = restHandler.RestGetEndpointBasicAuth(apiEndpoint, userName, password, headers);
            AirWatchUsers awUser = new AirWatchUsers();
            if (response.StatusDescription == "OK")
            {
                AirWatchUsers usersReturned = new AirWatchUsers();
                JsonConvert.PopulateObject(response.Content, usersReturned);
                userToReturn = usersReturned.Users[0];
            }
            else
            {
                userToReturn = null;
            }
            return userToReturn;
        }
Example #15
0
 private IList<UserListDTO> getUsers(UserSearchType searchType, string name, string role)
 {
     try
     {
         GetUsersRequest request = new GetUsersRequest();
         request.SearchType = searchType;
         request.Username = name;
         request.Rolename = role;
         GetUsersResponse response = Service.GetUsersByCriteria(request);
         return response.Users;
     }
     catch (Exception ex)
     {
         if (ExceptionPolicy.HandleException(ex, "PL Policy")) throw;
         return new List<UserListDTO>();
     }
 }
Example #16
0
        /// <summary>
        /// Helps a user locate friends.
        /// API Uri: https://api.foursquare.com/v2/users/search
        /// Documentation: https://developer.foursquare.com/docs/users/search.html
        /// </summary>
        /// <returns></returns>
        public List<FoursquareUser> SearchUser(UserSearchType type, string Query)
        {
            try {
                List<FoursquareUser> results = new List<FoursquareUser>();

                // Get Friend Requests
                String foursquareUserSearchUri = String.Format("https://api.foursquare.com/v2/users/search?oauth_token={0}{1}&{2}={3}",
                    AccessToken,
                    EndpointHelper.GetVerifiedDateParamForApi(),
                    type.ToString("F"),
                    Query);
                var responseUserSearch = WebRequestHelper.WebRequest(WebRequestHelper.Method.GET, foursquareUserSearchUri.ToString(), string.Empty);
                var jsonUserSearchResults = JObject.Parse(responseUserSearch);

                if (int.Parse(jsonUserSearchResults["meta"]["code"].ToString()) == 200) {
                    foreach (var fr in jsonUserSearchResults["response"]["results"]) {
                        results.Add(FoursquareUser.Parse(fr.ToString()));
                    }

                    if (results != null && results.Count > 0)
                        return results;
                }

                return null;
            } catch (Exception ex) {
                string err = ex.Message;
                return null;
            }
        }
Example #17
0
        private void Watchdog_Thread(string APIKey, List <string> IDsToWatch, string platformRegionShard, UserSearchType userSearchType = UserSearchType.PUBGName)
        {
            APIRequest request   = new APIRequest(); //Create a request class we can reuse
            Random     rnd       = new Random();     //Createa a raqndom number generater to vary the requests
            int        sleeptime = 0;

            OnWatchdogThreadStart();
            while (true)
            {
                OnWatchdogLoopStart();
                OnWatchdogRequest();
                List <APIUser> firstRequest = request.RequestUser(APIKey, platformRegionShard, IDsToWatch, userSearchType);//Fecth all the users matches
                sleeptime = rnd.Next(10000, 60000);
                OnWatchdogSleep(sleeptime);
                Thread.Sleep(sleeptime);                                                                                     //Wait 10 to 60 seconds
                OnWatchdogRequest();
                List <APIUser> secondRequest = request.RequestUser(APIKey, platformRegionShard, IDsToWatch, userSearchType); //Fetch them all again
                OnWatchdogCompare();
                foreach (APIUser firstuser in firstRequest)                                                                  //For each APIUser in the first request...
                {
                    foreach (APIUser seconduser in secondRequest)                                                            //...go through all the users in the second request...
                    {
                        if (firstuser.AccountID == seconduser.AccountID)                                                     //if the firstuser and seconduser have the same account id, we know theyre the same
                        {
                            if (firstuser.ListOfMatches[0] != seconduser.ListOfMatches[0])                                   //if the list of matches from the first and second request are different...
                            {
                                OnUserMatchListUpdated(seconduser, seconduser.ListOfMatches[0]);
                            }
                            else
                            {
                                OnUserMatchListNotUpdated(seconduser);
                            }
                        }
                    }
                }
            }
        }
Example #18
0
 /// <summary>
 /// Watch up to 6 users at once and trigger events when new matches are added
 /// </summary>
 /// <param name="APIKey">The API key to use during requests</param>
 /// <param name="IDToWatch">The PUBG names or Account IDs to watch</param>
 /// <param name="platformRegionShard">The region to watch</param>
 /// <param name="userSearchType">Watch by either PUBG names or Account ID</param>
 public void WatchMultiUser(string APIKey, List <string> IDsToWatch, string platformRegionShard, UserSearchType userSearchType = UserSearchType.PUBGName)
 {
     WatchdogThread = new Thread(() => Watchdog_Thread(APIKey, IDsToWatch, platformRegionShard, userSearchType));
     WatchdogThread.Start();
 }