public static bool TryParse(string urn, out DdiUrn ddiUrn) { ddiUrn = null; if (string.IsNullOrWhiteSpace(urn)) { return(false); } var parts = urn.Split(':', System.StringSplitOptions.RemoveEmptyEntries | System.StringSplitOptions.TrimEntries); if (parts.Length != 5) { return(false); } if (parts[0].ToLower() != "urn" && parts[1].ToLower() != "ddi") { return(false); } ddiUrn = new DdiUrn(); ddiUrn.Agency = parts[2]; ddiUrn.Identifier = parts[3]; ddiUrn.Version = parts[4]; return(true); }
private async Task <IActionResult> Lookup(string urn) { if (string.IsNullOrWhiteSpace(urn)) { return(RedirectToAction("Index", "Home")); } else { ResolverModel model = new ResolverModel(); DdiUrn ddiurn = null; if (!DdiUrn.TryParse(urn, out ddiurn)) { return(RedirectToAction("Index", "Home")); } model.Urn = ddiurn; Assignment assignment = await _context.Assignments.Where(x => x.AssignmentId == ddiurn.Agency).FirstOrDefaultAsync(); model.Assignment = assignment; // load HTTP resolvers await _context.Entry(assignment) .Collection(x => x.HttpResolvers) .LoadAsync(); model.HttpResolvers = assignment.HttpResolvers; return(View("Resolver", model)); } }