public async Task <PickupQueue> UpdateOperators(string queueName, string operators, SocketGuildUser user) { var queue = await _queueRepository.FindQueue(queueName, user.Guild.Id.ToString()); if (queue == null) { return(null); } var isAdmin = user.GuildPermissions.Has(GuildPermission.Administrator); if (!isAdmin && queue.OwnerId != user.Id.ToString()) { return(null); } var ops = OperatorParser.Parse(operators); if (ops?.ContainsKey("-teamsize") ?? false) { queue.TeamSize = int.Parse(ops["-teamsize"]?.FirstOrDefault() ?? "4"); } if (ops?.ContainsKey("-rcon") ?? false) { queue.Rcon = true; } if (ops?.ContainsKey("-norcon") ?? false) { queue.Rcon = false; } if (ops?.ContainsKey("-coop") ?? false) { queue.IsCoop = true; } if (ops?.ContainsKey("-nocoop") ?? false) { queue.IsCoop = false; } if (ops?.ContainsKey("-host") ?? false) { queue.Host = ops["-host"]?.FirstOrDefault(); } if (ops?.ContainsKey("-host") ?? false) { queue.Port = int.Parse(ops["-port"]?.FirstOrDefault() ?? "0"); } if (ops?.ContainsKey("-game") ?? false) { queue.Games = ops["-game"]; } queue.Updated = DateTime.UtcNow; queue = await SaveStaticQueueMessage(queue, user.Guild); await _queueRepository.UpdateQueue(queue); return(queue); }
public JSONParser() { typeParser = TypeParser.Instance; predicateParser = PredicateParser.Instance; operatorParser = OperatorParser.Instance; objectParser = ObjectParser.Instance; initStateParser = StateParser.Instance; goalStateParser = StateParser.Instance; }
public OperatorParserTests() { _mockWordsFinderHelper = new Mock <IWordsFinderHelper>(); _mockDigitsHelper = new Mock <IDigitsHelper>(); _operatorParser = new OperatorParser(_mockWordsFinderHelper.Object, _mockDigitsHelper.Object, ExpectedMinRange, ExpectedMaxRange, new Dictionary <string, int> { { ExpectedKnownWord, ExpectedMatchedDictionaryValue } }); }
public void NullDictionaryExpectThrowParserExceptionIfWordFound() { const string unknownWord = "UnknownWord"; _mockWordsFinderHelper.Setup(helper => helper.FindWords(unknownWord)).Returns(new[] { unknownWord }); var localOperatorParser = new OperatorParser(_mockWordsFinderHelper.Object, _mockDigitsHelper.Object, ExpectedMinRange, ExpectedMaxRange); Assert.Throws <ParserException>(() => localOperatorParser.ParseAllowedValues(unknownWord)); }
protected override QueryParser OnCharacter(char character) { if (IsWhiteSpace(character)) { return(this); } QueryParser parser; switch (character) { case '=': parser = Operator("=", value => visitor => visitor.VisitEquals(property, value)); break; case '!': parser = Operator("!=", value => visitor => visitor.VisitDoesNotEqual(property, value)); break; case '<': parser = Operator("<", value => visitor => visitor.VisitLessThan(property, value)).Or( Operator("<=", value => visitor => visitor.VisitLessThanOrEqualTo(property, value))); break; case '>': parser = Operator(">", value => visitor => visitor.VisitGreaterThan(property, value)).Or( Operator(">=", value => visitor => visitor.VisitGreaterThanOrEqualTo(property, value))); break; case 'c': parser = Operator("contains", value => visitor => visitor.VisitContains(property, value)); break; case 'e': parser = new OperatorParser("exists", new BooleanParser(value => consumer(visitor => visitor.VisitExists(property, value)))); break; case 'd': parser = Operator("derivedfrom", value => visitor => visitor.VisitDerivedFrom(property, value)).Or( Operator("doesNotContain", value => visitor => visitor.VisitDoesNotContain(property, value))); break; default: throw new QueryParsingException(string.Format("Unexpected operator begining: {0}.", character)); } return(parser.OnCharacter(character)); }
public async Task <PickupQueue> Create(string queueName, int?teamSize, string operators, SocketGuildUser user) { var ops = OperatorParser.Parse(operators); var rconEnabled = ops?.ContainsKey("-rcon") ?? true; if (ops?.ContainsKey("-norcon") == true) { rconEnabled = false; } var queue = new PickupQueue(user.Guild.Id.ToString(), queueName) { Name = queueName, GuildId = user.Guild.Id.ToString(), OwnerName = PickupHelpers.GetNickname(user), OwnerId = user.Id.ToString(), Created = DateTime.UtcNow, Updated = DateTime.UtcNow, TeamSize = teamSize ?? 4, IsCoop = ops?.ContainsKey("-coop") ?? false, Rcon = rconEnabled, Subscribers = new List <Subscriber> { new Subscriber { Id = user.Id, Name = PickupHelpers.GetNickname(user) } }, Host = ops?.ContainsKey("-host") ?? false ? ops["-host"]?.FirstOrDefault() : null, Port = int.Parse((ops?.ContainsKey("-port") ?? false ? ops["-port"]?.FirstOrDefault() : null) ?? "0"), Games = ops?.ContainsKey("-game") ?? false ? ops["-game"] : Enumerable.Empty <string>(), }; await _queueRepository.AddQueue(queue); queue = await _queueRepository.FindQueue(queue.Name, user.Guild.Id.ToString()); queue = await SaveStaticQueueMessage(queue, user.Guild); await _queueRepository.UpdateQueue(queue); return(queue); }
public void CorrectOperatorIsReturned(string input, Type expectedType) { // Arrange var operators = new List <IOperator> { new SumOperator(), new DifferenceOperator() }; var parser = new OperatorParser(operators); // Act var result = parser.Parse(input); // Assert Assert.That(result, Is.TypeOf(expectedType)); }
public void TestParse__Null() { ArgumentNullException ex = Assert.Throws <ArgumentNullException>(delegate { OperatorParser.Parse(null, out string _); });