private List <SniperInfo> FilterOnRequest(Match match) { Filter filter = JsonConvert.DeserializeObject <Filter>(match.Groups[2].Value); var lastReceived = Convert.ToInt64(match.Groups[1].Value); var sniperInfos = _serverRepository.FindAllNew(lastReceived, filter.VerifiedOnly || filter.MinimumIV > 0 || filter.PokemonNotInFilterMinimumIV < 101); return(SniperInfoFilter.FilterUnmanaged(sniperInfos, filter)); }
private void socketServer_NewMessageReceived(WebSocketSession session, string value) { try { var match = Regex.Match(value, @"^(1?\d+)\:(?:Disturb the sound of silence)\:(2?.*)$"); var matchRequest = Regex.Match(value, @"^(1?\d+)\:(?:I\'ve come to talk with you again\:)(2?.*)$"); if (match.Success) { var sniperInfos = JsonConvert.DeserializeObject <List <SniperInfo> >(match.Groups[2].Value); if (sniperInfos != null && sniperInfos.Any()) { foreach (SniperInfo sniperInfo in sniperInfos) { if (_serverUploadFilter.Matches(sniperInfo)) { OnReceivedViaClients(sniperInfo); } else { Log.Trace($"Not allowing upload of {sniperInfo} but it doesn't match the upload filter"); } } } } else if (matchRequest.Success) { Filter filter = JsonConvert.DeserializeObject <Filter>(matchRequest.Groups[2].Value); var lastReceived = Convert.ToInt64(matchRequest.Groups[1].Value); var sniperInfos = _serverRepository.FindAllNew(lastReceived, filter.VerifiedOnly); var sniperInfoToSend = SniperInfoFilter.FilterUnmanaged(sniperInfos, filter); session.Send($"{GetEpoch()}:Hear my words that I might teach you:" + JsonConvert.SerializeObject(sniperInfoToSend)); } else { session.Send("People talking without speaking"); } } catch (Exception e) { Log.Error($"[Session {session.SessionID}]Error during message received: ", e); session.Send("People talking without speaking"); } }