Exemple #1
0
        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));
            }
        }