public async Task <IEnumerable <Session> > Lookup(SessionLookup lookup) { var db = sessionCache.GetDatabase(); var result = db.HashGet(lookup.sessionKey.ToString(), "guid"); var ret = new List <Session>(); if (!result.HasValue) { return(ret); } var session = new Session(); session.sessionKey = result.ToString(); var profileId = db.HashGet(lookup.sessionKey.ToString(), "profileid"); var userId = db.HashGet(lookup.sessionKey.ToString(), "userid"); var profileLookup = new ProfileLookup(); profileLookup.id = int.Parse(profileId.ToString()); session.profile = (await profileRepository.Lookup(profileLookup)).FirstOrDefault(); var userLookup = new UserLookup(); userLookup.id = int.Parse(userId.ToString()); session.user = (await userRepository.Lookup(userLookup)).FirstOrDefault(); session.appName = db.HashGet(lookup.sessionKey.ToString(), "appName"); ret.Add(session); return(ret); }
public void TournamentRecordsCompactGetsNullIfUserHasNeverEntered() { var command = TournamentModule.Commands.Where(x => x.Name.Equals("TournamentRecords")).FirstOrDefault(); var results = command.CompactExecutor("", UserLookup.GetId("Buzz")); Assert.IsNull(results); }
public async Task <AuthResponse> ProfileFromCDKey([FromBody] AuthRequest request) { var response = new AuthResponse(); var cdKeyLookup = new CdKeyLookup(); cdKeyLookup.CdkeyHash = request.cdkey; if (request.gameLookup == null) { throw new BadCdKeyException(); } cdKeyLookup.Gameid = request.gameLookup.id; var profile = await cdkeyRepository.LookupProfileFromCDKey(cdKeyLookup); if (profile == null || request.profileLookup == null || profile.Nick.CompareTo(request.profileLookup.nick) != 0) { throw new BadCdKeyException(); } response.profile = profile; var userLookup = new UserLookup(); userLookup.id = profile.Userid; var user = (await userRepository.Lookup(userLookup)).FirstOrDefault(); response.user = user; return(response); }
public async Task <Session> GenerateSession([FromBody] AuthRequest request) { Profile profile = null; if (request.profileLookup != null) { profile = (await profileRepository.Lookup(request.profileLookup)).FirstOrDefault(); if (profile == null) { throw new NoSuchUserException(); } } var userLookup = new UserLookup(); userLookup.id = profile.Userid; User user = (await userRepository.Lookup(userLookup)).FirstOrDefault(); if (user == null) { throw new NoSuchUserException(); } Session sessionModel = new Session(); sessionModel.profile = profile; sessionModel.user = user; if (request.expiresIn.HasValue) { sessionModel.expiresIn = request.expiresIn.Value; } return(await this.sessionRepository.Create(sessionModel)); }
internal async Task <Boolean> CheckShouldBanAsync(ModeratableThing thing, IEnumerable <String> bannedGroups) { if (IsUnbannable(thing)) { return(false); } // flair bypass only applies to authors that can have flair if (thing is VotableThing votableThing) { if (!String.IsNullOrWhiteSpace(votableThing.AuthorFlairCssClass) && ignoreAuthorCssClasses.Any(cssClass => votableThing.AuthorFlairCssClass.Contains(cssClass))) { return(false); } } if (UserLookup is CacheableBackedBotDatabase cacheable) { if (cacheable.IsStale) { IncrementStatisticIfExists("requestRate"); } } IEnumerable <String> groupNames = (await UserLookup.GetGroupsForUserAsync(thing.AuthorName)).Select(group => group.Name); return(groupNames.Any(groupName => bannedGroups.Contains(groupName))); }
public IActionResult OnPost() { UserLookup lookup = new UserLookup(); UserInfo info = new UserInfo(); if (ModelState.IsValid == true) { info = lookup.GetUserInfo(NameProperty.Name); NameProperty.District = info.District; NameProperty.Fact = info.Fact; NameProperty.ErrorMessage = info.ErrorMessage; return(Page());//new RedirectToPageResult("/Input/UserInput"); } else { //NameProperty.ErrorMessage = info.ErrorMessage; return(Page()); } // if (ModelState.IsValid == true) // { //return Model // } // if () }
public async Task <ValueTuple <bool, int, int> > CheckUniqueNickInUse(string uniquenick, int?namespaceid, int?partnercode) { ValueTuple <bool, int, int> ret = new ValueTuple <bool, int, int>(false, 0, 0); if (!namespaceid.HasValue || namespaceid.Value == 0) { return(ret); } ProfileLookup profileLookup = new ProfileLookup(); profileLookup.uniquenick = uniquenick; profileLookup.namespaceid = namespaceid; profileLookup.partnercode = partnercode; var profile = (await Lookup(profileLookup)).FirstOrDefault(); if (profile != null) { UserLookup userLookup = new UserLookup(); ret.Item1 = true; ret.Item2 = profile.Id; ret.Item3 = profile.Userid; } return(ret); }
public async Task <AuthResponse> PreAuth([FromBody] AuthRequest request) { Dictionary <string, string> dict = await sessionRepository.decodeAuthToken(request.auth_token); if (dict == null) { throw new AuthInvalidCredentialsException(); } var response = new AuthResponse(); ProfileLookup profileLookup = new ProfileLookup(); UserLookup userLookup = new UserLookup(); int profileId; int.TryParse(dict["profileId"], out profileId); profileLookup.id = profileId; User user = null; if (dict.ContainsKey("userId")) { int.TryParse(dict["userId"], out profileId); userLookup.id = profileId; user = (await userRepository.Lookup(userLookup)).First(); } response.profile = (await profileRepository.Lookup(profileLookup)).First(); if (user == null) { userLookup.id = response.profile.Userid; user = (await userRepository.Lookup(userLookup)).First(); } response.user = user; var sesskey = gs_sesskey(request.session_key); string challenge = dict["true_signature"] + sesskey.ToString(); using (MD5 md5 = MD5.Create()) { StringBuilder sBuilder = new StringBuilder(); byte[] data = md5.ComputeHash(Encoding.UTF8.GetBytes(challenge)); for (int i = 0; i < data.Length; i++) { sBuilder.Append(data[i].ToString("x2")); } challenge = sBuilder.ToString().ToLower(); } if (!challenge.Equals(request.client_response.ToLower())) { throw new AuthInvalidCredentialsException(); } return(response); }
public ApplicationLogicRoot(IPersistence persistence) { var noSqlPersistence = persistence; IUserLookup lookup = new UserLookup(noSqlPersistence); IConnectorDestination destination = new UserDestination(noSqlPersistence); _userUseCaseFactory = new UserUseCaseFactory(destination, lookup); }
public void TournamentRecordsGetsErrorWhenUserHasNotCompetedInAnyTournaments() { var command = TournamentModule.Commands.Where(x => x.Name.Equals("TournamentRecords")).FirstOrDefault(); var results = command.Executor("", UserLookup.GetId("Buzz")); Assert.IsNotNull(results.Responses); Assert.AreEqual(1, results.Responses.Count); }
public void TournamentResultsCompactReturnsNullIfNoTournamentsHaveTakenPlace() { TournamentResultsData.Clear(); var command = TournamentModule.Commands.Where(x => x.Name.Equals("TournamentResults")).FirstOrDefault(); var results = command.CompactExecutor("", UserLookup.GetId("Buzz")); Assert.IsNull(results); }
public void HandleTeamJoin(TeamJoin newuser) { try { UserLookup.Add(newuser.user.id, newuser.user); } catch { } }
public async Task <AuthResponse> CDKeyAuth([FromBody] AuthRequest request) { var response = new AuthResponse(); try { var cdKeyLookup = new CdKeyLookup(); cdKeyLookup.CdkeyHash = request.cdkey; if (request.gameLookup == null) { throw new AuthInvalidCredentialsException(); } cdKeyLookup.Gameid = request.gameLookup.id; cdKeyLookup.profileLookup = request.profileLookup; var profile = await cdkeyRepository.LookupProfileFromCDKey(cdKeyLookup); if (profile == null || request.profileLookup == null || profile.Nick.CompareTo(request.profileLookup.nick) != 0) { throw new AuthInvalidCredentialsException(); } response.profile = profile; var userLookup = new UserLookup(); userLookup.id = profile.Userid; var user = (await userRepository.Lookup(userLookup)).FirstOrDefault(); response.user = user; var sesskey = gs_sesskey(request.session_key); var cdkey = (await cdkeyRepository.Lookup(cdKeyLookup)).FirstOrDefault(); string challenge = cdkey.Cdkey + sesskey.ToString(); using (MD5 md5 = MD5.Create()) { StringBuilder sBuilder = new StringBuilder(); byte[] data = md5.ComputeHash(Encoding.UTF8.GetBytes(challenge)); for (int i = 0; i < data.Length; i++) { sBuilder.Append(data[i].ToString("x2")); } challenge = sBuilder.ToString().ToLower(); } if (!challenge.Equals(request.client_response.ToLower())) { throw new AuthInvalidCredentialsException(); } return(response); } catch (AuthInvalidCredentialsException e) { var profile = (await profileRepository.Lookup(new ProfileLookup { id = configuration.GetValue <int>("PersistCdKeyAuthFallbackProfile") })).FirstOrDefault(); response.profile = profile; var userLookup = new UserLookup(); userLookup.id = profile.Userid; var user = (await userRepository.Lookup(userLookup)).FirstOrDefault(); response.user = user; return(response); } }
public void TournamentResultsGetsErrorMessageWhenNoTournamentHasCompleted() { TournamentResultsData.Clear(); var command = TournamentModule.Commands.Where(x => x.Name.Equals("TournamentResults")).FirstOrDefault(); var results = command.Executor("", UserLookup.GetId("Foo")); Assert.IsNotNull(results.Responses); Assert.AreEqual(1, results.Responses.Count); }
public void TournamentRecordsGetsUsersRecords() { var command = TournamentModule.Commands.Where(x => x.Name.Equals("TournamentRecords")).FirstOrDefault(); var results = command.Executor("", UserLookup.GetId("Foo")); Assert.IsNotNull(results.Responses); Assert.AreEqual(2, results.Responses.Count); Assert.IsTrue(results.Responses.Any(x => x.Contains("1st") && x.Contains("35 points"))); Assert.IsTrue(results.Responses.Any(x => x.Contains("2nd") && x.Contains("40 points"))); }
public void TournamentResultsGetsLatestTournamentWithoutParticipation() { var command = TournamentModule.Commands.Where(x => x.Name.Equals("TournamentResults")).FirstOrDefault(); var results = command.Executor("", UserLookup.GetId("Buzz")); Assert.IsNotNull(results.Responses); Assert.AreEqual(2, results.Responses.Count); Assert.IsTrue(results.Responses.Any(x => x.Contains("30 seconds"))); Assert.IsTrue(results.Responses.Any(x => x.Contains("02") && x.Contains("30"))); }
private async Task <AuthResponse> handleAuthRequest(AuthRequest authRequest, ProofType type) { AuthResponse response = new AuthResponse(); if (authRequest.user != null) { var user = (await userRepository.Lookup(authRequest.user)).FirstOrDefault(); if (user == null) { throw new NoSuchUserException(); } if (authRequest.profile != null) { var userLookup = new UserLookup(); userLookup.id = user.Id; authRequest.profile.user = userLookup; } } var profile = (await profileRepository.Lookup(authRequest.profile)).FirstOrDefault(); if (profile == null) { switch (type) { case ProofType.ProofType_NickEmail: throw new NickInvalidException(); case ProofType.ProofType_Unique: throw new UniqueNickInvalidException(); default: throw new AuthInvalidCredentialsException(); } } UserLookup lookup = new UserLookup(); lookup.id = profile.Userid; profile.User = profile.User ?? (await userRepository.Lookup(lookup)).FirstOrDefault(); String client_proof = GetPasswordProof(profile, authRequest, type, true); if (!client_proof.Equals(authRequest.client_response)) { throw new AuthInvalidCredentialsException(); } response.server_response = GetPasswordProof(profile, authRequest, type, false); response.profile = profile; response.user = profile.User; response.session = await generateSessionKey(profile); response.success = true; return(response); }
public List <User> LookupUser(string partName) { List <User> user = new List <User>(); UserLookup users = JsonConvert.DeserializeObject <UserLookup>(Get("users/lookup?name=" + partName)); foreach (User u in users.users) { user.Add(u); } return(user); }
public void InitUserLookup() { using (var scope = serviceProvider.CreateScope()) { var db = scope.ServiceProvider.GetRequiredService <NervboxDBContext>(); db.Users.ToList().ForEach(user => { UserLookup.AddOrUpdate(user.Id, user, (id, newUser) => { return(newUser); }); }); } }
public void TournamentRecordsCompactGetsUserRecords() { var command = TournamentModule.Commands.Where(x => x.Name.Equals("TournamentRecords")).FirstOrDefault(); var results = command.CompactExecutor("", UserLookup.GetId("Foo")); var resultObject = RecordsFromCompact(results.ToCompact().First()); Assert.IsNotNull(resultObject); Assert.AreEqual(1, resultObject.TopRank); Assert.AreEqual(35, resultObject.TopRankScore); Assert.AreEqual(40, resultObject.TopScore); Assert.AreEqual(2, resultObject.TopScoreRank); }
internal async Task <IReadOnlyCollection <Models.Group> > GetBannedGroupsAsync(AbstractSubredditOptionSet options) { if (UserLookup is CacheableBackedBotDatabase cacheable) { if (cacheable.IsStale) { IncrementStatisticIfExists("requestRate"); } } IReadOnlyCollection <String> actioned = options.ActionedUserTypes.ToHashSet(); return(actioned.Count == 0 ? await UserLookup.GetDefaultBannedGroupsAsync() : (await UserLookup.GetAllGroupsAsync()).Values.Where(group => actioned.Contains(group.Name)).ToArray()); }
public void TournamentResultsCompactIncludesUserData() { var command = TournamentModule.Commands.Where(x => x.Name.Equals("TournamentResults")).FirstOrDefault(); var results = command.CompactExecutor("", UserLookup.GetId("Foo")); var resultObject = ResultsFromCompact(results.ToCompact().First()); Assert.IsNotNull(resultObject); Assert.AreEqual(UserLookup.GetId("Fizz"), resultObject.Winner); Assert.AreEqual(3, resultObject.Participants); Assert.AreEqual(30, resultObject.WinnerPoints); Assert.AreEqual(3, resultObject.Rank); Assert.AreEqual(10, resultObject.UserPoints); }
public TournamentModule(TournamentSystem system, IRepository <TournamentResult> repository, UserLookup userLookup) { TournamentSystem = system; system.TournamentStarted += System_TournamentStarted; system.TournamentEnded += System_TournamentEnded; Repository = repository; UserLookup = userLookup; Commands = new CommandHandler[] { new CommandHandler("TournamentResults", TournamentResults, TournamentResultsCompact, "TournamentResults", "tournament-results"), new CommandHandler("TournamentRecords", TournamentRecords, TournamentRecordsCompact, "TournamentRecords", "tournament-records"), new CommandHandler("NextTournament", NextTournament, NextTournamentCompact, "NextTournament", "next-tournament") }; }
public void PlaySound(string soundId, int userId) { new Task(() => { var path = SoundDirectory.FullName; if (Environment.EnvironmentName == "Development") { path = SoundDirectoryDebugPlay; } var sound = this.Sounds[soundId]; //this.SshService.SendCmd($"omxplayer -o local --no-keys {Path.Combine(path, sound.FileName.Replace("!", "\\!").Replace(" ", "\\ "))} &"); this.SshService.SendCmd($"omxplayer -o local --no-keys {path}/{sound.FileName.Replace("!", "\\!").Replace(" ", "\\ ")} &"); //try //{ // IPHostEntry e = Dns.GetHostEntry(initiator); // if (e != null) // { // initiator = $"{e.HostName} ({initiator})"; // } //} //catch { } var usage = new SoundUsage() { PlayedByUserId = userId, Time = DateTime.UtcNow, SoundHash = sound.Hash }; this.Usages.Enqueue(usage); if (!UserLookup.ContainsKey(userId)) { InitUserLookup(); } User initiator = UserLookup[userId]; this.SoundHub.Clients.All.SendAsync("soundPlayed", new { Initiator = new { Name = initiator.FirstName + " " + initiator.LastName, Id = initiator.Id }, Time = DateTime.UtcNow, SoundHash = sound.Hash, FileName = sound.FileName }); }).Start(); }
public void ShouldCreateNoConnecteeWhenUserWithGivenIdDoesNotExist() { //GIVEN var persistence = Substitute.For <IPersistence>(); var lookup = new UserLookup(persistence); var id = Any.String(); persistence.ReadById <UserDto>("Users", id).Returns(Maybe <UserDto> .Nothing); //WHEN var connectee = lookup.LookupConnectee(id); //THEN connectee.Should().BeOfType <NoConnectee>(); }
public void ShouldThrowInvalidConnectorIdExceptionWhenReadingConnectorRaisesException() { //GIVEN var persistence = Substitute.For <IPersistence>(); var lookup = new UserLookup(persistence); var persistenceException = Any.Exception(); var id = Any.String(); persistence.ReadById <UserDto>("Users", id).Throws(persistenceException); //WHEN - THEN new Action(() => lookup.LookupConnector(id)).Should().Throw <InvalidConnectorIdException>() .Where(e => e.InnerException == persistenceException) .Where(e => e.Message.Contains(id)); }
static void Main(string[] args) { Console.WriteLine("Enter player name or word"); string name = Console.ReadLine(); do { UserLookup lookup = new UserLookup(); UserInfo info = new UserInfo(); info = lookup.GetUserInfo(name); Console.WriteLine(info.Fact); Console.WriteLine(info.District); Console.WriteLine(info.ErrorMessage); name = Console.ReadLine(); } while (name != "q"); }
public void ShouldCreateConnecteeWithReadUser() { //GIVEN var persistence = Substitute.For <IPersistence>(); var lookup = new UserLookup(persistence); var userDto = Any.Instance <UserDto>().ToMaybe(); var id = Any.String(); persistence.ReadById <UserDto>("Users", id).Returns(userDto); //WHEN var connector = lookup.LookupConnectee(id); //THEN connector.Should().BeOfType <Connectee>() .And.DependOn(userDto.Value); }
public void Gloats() { var fisher = FisherData.FirstOrDefault(x => x.UserId == "00"); var response = Module.Gloat("1", fisher.UserId); var responses = response.Responses; var messages = response.Messages; Assert.IsTrue(response.Processed); Assert.IsNull(response.Errors); Assert.AreEqual(1, responses.Count); Assert.AreEqual(1, messages.Count); Assert.IsTrue(responses[0].Contains(System.GloatCost.ToString())); Assert.IsTrue(responses[0].Contains(fisher.Records[0].Fish.Name)); Assert.IsTrue(messages[0].Contains(UserLookup.GetUsername(fisher.UserId))); Assert.IsTrue(messages[0].Contains(fisher.Records[0].Fish.Name)); Assert.IsTrue(messages[0].Contains(fisher.Records[0].Length.ToString())); Assert.IsTrue(messages[0].Contains(fisher.Records[0].Weight.ToString())); }
public void RespondsWithCompactGlobalLeaderboard() { var responses = Module.GlobalLeaderboardCompact("", "00"); var compact = responses.ToCompact(); var leaderboard = LeaderboardMock.Read(); foreach (var entry in leaderboard) { Assert.IsTrue( compact.Any( x => x.Contains(entry.Fish.Name) && x.Contains(entry.Length.ToString()) && x.Contains(entry.Weight.ToString()) && x.Contains(UserLookup.GetUsername(entry.UserId)) ) ); } }
protected bool Equals(UserLookup other) { return ID == other.ID; }