public void Example1() { List <string> testData = new List <string> { "class: 1-3 or 5-7", "row: 6-11 or 33-44", "seat: 13-40 or 45-50", "", "your ticket:", "7,1,14", "", "nearby tickets:", "7,3,47", "40,4,50", "55,2,20", "38,6,12" }; TicketValidator validator = new TicketValidator(); validator.ParseData(testData); int result = validator.ValidateAllNumbers(); Assert.AreEqual(71, result); }
public Ticket(int orderNumber) : this() { this.orderNumber = orderNumber; TicketValidator.Validate(this); }
public void Example2() { List <string> testData = new List <string> { "class: 1-3 or 5-7", "row: 6-11 or 33-44", "seat: 13-40 or 45-50", "", "your ticket:", "7,1,14", "", "nearby tickets:", "7,3,47", "40,4,50", "55,2,20", "38,6,12" }; TicketValidator validator = new TicketValidator(); validator.ParseData(testData); validator.DecodeColumns(); Assert.AreEqual("row", validator.GetRuleForColumn(0).Name); Assert.AreEqual("class", validator.GetRuleForColumn(1).Name); Assert.AreEqual("seat", validator.GetRuleForColumn(2).Name); }
public Solution(string input) { var blocks = Input.GetInput(input).Split(Environment.NewLine + Environment.NewLine).Select(b => b.Split(Environment.NewLine)).ToArray(); var inputParser = new InputParser <string, int, int, int, int>(true, 5, new List <string>() { ": ", "-", " or ", "-" }); ScanRules = blocks[0].Select(line => new ScanRule(inputParser.Parse(line))).ToList(); var ticketParser = new InputParser <int[]>("line"); MyTicket = new Ticket() { values = ticketParser.Parse(blocks[1][1]) }; OtherTickets = new List <Ticket>(); for (int n = 1; n < blocks[2].Length; n++) { OtherTickets.Add(new Ticket() { index = n, values = ticketParser.Parse(blocks[2][n]) }); } Validator = new TicketValidator(ScanRules); }
public void Part1() { TicketValidationResult result = TicketValidator.ValidateNearby( TicketDataParser.Parse(StringListRetriever.Retreive("InputList15.txt").ToList())); Assert.Equal(29759, result.InvalidValues.Sum()); }
public void SetUp() { var info = CreateModel.CreateInfo(); _dbContextMock = new Mock <ApplicationDbContext>(); _dbContextMock.Setup(x => x.Info).Returns(CreateMock.CreateDbSetMock <VisitInfo>(new VisitInfo[] { info }).Object); _validator = new TicketValidator(_dbContextMock.Object); }
/// <summary> /// Validates a ticket contained in the URL, presumably generated by /// the CAS server after a successful authentication. The actual ticket /// validation is performed by the configured TicketValidator /// (i.e., CAS 1.0, CAS 2.0, SAML 1.0). If the validation succeeds, the /// request is authenticated and a FormsAuthenticationCookie and /// corresponding CasAuthenticationTicket are created for the purpose of /// authenticating subsequent requests (see ProcessTicketValidation /// method). If the validation fails, the authentication status remains /// unchanged (generally the user is and remains anonymous). /// </summary> public void ProcessTicketValidation(HttpContextBase httpContext) { HttpApplication app = httpContext.ApplicationInstance; HttpRequestBase request = httpContext.Request; string ticket = request[_casServices.Settings.ArtifactParameterName]; try { // Attempt to authenticate the ticket and resolve to an ICasPrincipal var principal = TicketValidator.Validate(ticket); // Save the ticket in the FormsAuthTicket. Encrypt the ticket and send it as a cookie. var casTicket = new CasAuthenticationTicket( ticket, _urlUtil.RemoveCasArtifactsFromUrl(request.Url.AbsoluteUri), request.UserHostAddress, principal.Assertion, principal.MaxAttributes, _clock.UtcNow ); if (_casServices.ProxyTicketManager != null && !string.IsNullOrEmpty(principal.ProxyGrantingTicket)) { casTicket.ProxyGrantingTicketIou = principal.ProxyGrantingTicket; casTicket.Proxies.AddRange(principal.Proxies); string proxyGrantingTicket = _casServices.ProxyTicketManager.GetProxyGrantingTicket(casTicket.ProxyGrantingTicketIou); if (!string.IsNullOrEmpty(proxyGrantingTicket)) { casTicket.ProxyGrantingTicket = proxyGrantingTicket; } } // TODO: Check the last 2 parameters. We want to take the from/to dates from the FormsAuthenticationTicket. // However, we may need to do some clock drift correction. FormsAuthenticationTicket formsAuthTicket = CreateFormsAuthenticationTicket( principal.Identity.Name, ticket, null, null); SetAuthCookie(httpContext, formsAuthTicket); // Also save the ticket in the server store (if configured) if (_casServices.ServiceTicketManager != null) { _casServices.ServiceTicketManager.UpdateTicketExpiration(casTicket, formsAuthTicket.Expiration); } // Jump directly to EndRequest. Don't allow the Page and/or Handler to execute. // EndRequest will redirect back without the ticket in the URL app.CompleteRequest(); return; } catch (TicketValidationException e) { // Leave principal null. This might not have been a CAS service ticket. Logger.Error(e, "Ticket validation error: {0}", e); } }
public void execute_throws_validation_exception_on_missing_severity( Envelope<Ticket> ticket, Mock<ICommand<Ticket>> inner) { ticket.Item.Severity = null; var sut = new TicketValidator(inner.Object); sut.Invoking(s => s.Execute(ticket)).ShouldThrow<ValidationException>(); }
public void execute_throws_validation_exception_on_description_bigger_than_500_chars( Envelope<Ticket> ticket, Mock<ICommand<Ticket>> inner) { ticket.Item.Description = new string('b', 501); var sut = new TicketValidator(inner.Object); sut.Invoking(s => s.Execute(ticket)).ShouldThrow<ValidationException>(); }
public void TestTicketValidation(bool result, params int[] ticketInfo) { var ticketValidator = new TicketValidator(); ticketValidator.AddRule("class", 1, 3, 5, 7); ticketValidator.AddRule("row", 6, 11, 33, 44); ticketValidator.AddRule("seat", 13, 40, 45, 50); ticketValidator.IsTicketValid(ticketInfo).ShouldBe(result, string.Join(',', ticketInfo)); }
public void execute_calls_inner_command( Envelope<Ticket> ticket, Mock<ICommand<Ticket>> inner) { var sut = new TicketValidator(inner.Object); sut.Execute(ticket); inner.Verify(i => i.Execute(ticket), Times.Once); }
public void Part1Sample() { TicketData ticketData = TicketDataParser.Parse(GetPart1SampleData()); Assert.Equal(3, ticketData.ValidationRules.Count); Assert.Equal(5, ticketData.Tickets.Count); TicketValidationResult ticketValidationResult = TicketValidator.ValidateNearby(ticketData); Assert.Equal(71, ticketValidationResult.InvalidValues.Sum()); }
public void Part2() { TicketData ticketData = TicketDataParser.Parse(StringListRetriever.Retreive("InputList15.txt").ToList()); TicketValidationResult ticketValidationResult = TicketValidator.ValidateNearby(ticketData); FieldOrderResult fieldOrderResult = FieldOrderFinder.FindFieldOrderFor(ticketValidationResult.Tickets, ticketData.ValidationRules); Assert.Equal(1307550234719, fieldOrderResult.FieldOrder.Keys.Where(x => x.StartsWith("departure")) .Select(x => System.Convert.ToInt64(ticketData.Tickets[0].DataItems[fieldOrderResult.FieldOrder[x]])) .Aggregate <long, long>(1, (x, y) => x * y)); }
public void Part2Sample() { TicketData ticketData = TicketDataParser.Parse(GetPart2SampleData()); Assert.Equal(3, ticketData.ValidationRules.Count); Assert.Equal(4, ticketData.Tickets.Count); TicketValidationResult ticketValidationResult = TicketValidator.ValidateNearby(ticketData); Assert.Equal(3, ticketValidationResult.Tickets.Count); FieldOrderResult fieldOrderResult = FieldOrderFinder.FindFieldOrderFor(ticketValidationResult.Tickets, ticketData.ValidationRules); }
public async Task <ActionResult> Update(int id, [FromBody] TicketRequestDto dto) { var validator = new TicketValidator(); var result = await validator.ValidateAsync(dto); if (!result.IsValid) { return(BadRequest(result.Errors)); } return(Ok(await _service.Update(id, dto))); }
public void TestRule(string rule, int pos, bool result) { var ticketValidator = new TicketValidator(); ticketValidator.AddRule("class", 0, 1, 4, 19); ticketValidator.AddRule("row", 0, 5, 8, 19); ticketValidator.AddRule("seat", 0, 13, 16, 19); ticketValidator.IsTicketValid(new int[] { 3, 9, 18 }); ticketValidator.IsTicketValid(new int[] { 15, 1, 5 }); ticketValidator.IsTicketValid(new int[] { 5, 14, 9 }); ticketValidator.TestRule(rule, pos).ShouldBe(result, $"{rule} {pos}"); }
public void TestTicketScanningErrorRate() { var ticketValidator = new TicketValidator(); ticketValidator.AddRule("class", 1, 3, 5, 7); ticketValidator.AddRule("row", 6, 11, 33, 44); ticketValidator.AddRule("seat", 13, 40, 45, 50); ticketValidator.IsTicketValid(new int[] { 7, 3, 47 }); ticketValidator.IsTicketValid(new int[] { 40, 4, 50 }); ticketValidator.IsTicketValid(new int[] { 55, 2, 20 }); ticketValidator.IsTicketValid(new int[] { 38, 6, 12 }); ticketValidator.TicketScanningErrorRate.ShouldBe(71); }
public void TestMatrix() { var ticketValidator = new TicketValidator(); ticketValidator.AddRule("class", 0, 1, 4, 19); ticketValidator.AddRule("row", 0, 5, 8, 19); ticketValidator.AddRule("seat", 0, 13, 16, 19); ticketValidator.IsTicketValid(new int[] { 3, 9, 18 }); ticketValidator.IsTicketValid(new int[] { 15, 1, 5 }); ticketValidator.IsTicketValid(new int[] { 5, 14, 9 }); var fieldMatrix = ticketValidator.GetFieldMatrix(); // Tests stopped working? //fieldMatrix.ShouldContainKeyAndValue<string, int[]>("class", new int[] { 0, 1, 1 }); //fieldMatrix.ShouldContainKeyAndValue<string, int[]>("row", new int[] { 1, 1, 1 }); //fieldMatrix.ShouldContainKeyAndValue<string, int[]>("seat", new int[] { 0, 0, 1 }); }
public void TestResolvedFields() { var ticketValidator = new TicketValidator(); ticketValidator.AddRule("class", 0, 1, 4, 19); ticketValidator.AddRule("row", 0, 5, 8, 19); ticketValidator.AddRule("seat", 0, 13, 16, 19); ticketValidator.IsTicketValid(new int[] { 3, 9, 18 }); ticketValidator.IsTicketValid(new int[] { 15, 1, 5 }); ticketValidator.IsTicketValid(new int[] { 5, 14, 9 }); ticketValidator.GetResolvedFields().OrderBy(d => d.Key).ShouldBe( new Dictionary <string, int> { { "class", 1 }, { "row", 0 }, { "seat", 2 }, } ); }
static void Main(string[] args) { DatabaseConnectionManager databaseConnectionManager = new DatabaseConnectionManager(); UserValidator userValidator = new UserValidator(); MatchValidator matchValidator = new MatchValidator(); TicketValidator ticketValidator = new TicketValidator(); UserRepository userRepository = new UserRepository(databaseConnectionManager, "users", userValidator); TicketRepository ticketRepository = new TicketRepository(databaseConnectionManager, "tickets", ticketValidator); MatchRepository matchRepository = new MatchRepository(databaseConnectionManager, "matches", matchValidator); UserService userService = new UserService(userRepository); MatchService matchService = new MatchService(matchRepository); TicketService ticketService = new TicketService(ticketRepository, matchRepository); SellTicketsServer sellTicketsServer = new SellTicketsServer(ticketService, userService, matchService); ConcurrentServer concurrentServer = new SerialSellTicketsServer("127.0.0.1", 5555, sellTicketsServer); concurrentServer.Start(); }
static void Main(string[] args) { DatabaseConnectionManager databaseConnectionManager = new DatabaseConnectionManager(); UserValidator userValidator = new UserValidator(); MatchValidator matchValidator = new MatchValidator(); TicketValidator ticketValidator = new TicketValidator(); UserRepository userRepository = new UserRepository(databaseConnectionManager, "users", userValidator); TicketRepository ticketRepository = new TicketRepository(databaseConnectionManager, "tickets", ticketValidator); MatchRepository matchRepository = new MatchRepository(databaseConnectionManager, "matches", matchValidator); UserService userService = new UserService(userRepository); MatchService matchService = new MatchService(matchRepository); TicketService ticketService = new TicketService(ticketRepository, matchRepository); SellTicketsServer sellTicketsServer = new SellTicketsServer(ticketService, userService, matchService); var server = new Grpc.Core.Server { Services = { AppService.BindService(sellTicketsServer) }, Ports = { new ServerPort("localhost", 5555, ServerCredentials.Insecure) } }; server.Start(); while (true) { var line = Console.ReadLine(); if (line != null && line.ToLower().Equals("exit")) { server.ShutdownAsync().Wait(); break; } } }
public Product3Validator() { TicketValidator.Validate().Policy().ApplSignedState().DistributionChannel(); }
public EditTicketCommand(MFGContext context, IMapper mapper, TicketValidator validator) { _context = context; _mapper = mapper; _validator = validator; }
public void ValidateRange_WithNumStrings_ShouldReturnNums(string str, int expected) { int result = TicketValidator.ValidateRange(str); Assert.True(result == expected); }
public TicketService(IUnitOfWork unitOfWork, IMapper mapper) { this.unitOfWork = unitOfWork; this.mapper = mapper; validator = new TicketValidator(); }
public TicketRepository(DatabaseConnectionManager databaseConnectionManager, string tableName, TicketValidator validator) : base(databaseConnectionManager, tableName, validator) { }
public Product2Validator() { TicketValidator.Validate().Policy().ApplSignedState(); }