public void StateParsing_LeavesDatesUntouched()
        {
            const string expected = "2019-04-22T20:52:50Z";

            var json   = $"{{'date': '{expected}'}}";
            var parser = new HalJsonParser();
            var result = parser.Parse(json);
            var date   = result.StateValues.Single(sv => sv.Name == "date");

            Assert.Equal(date.Value, expected);
        }
예제 #2
0
        public HalClient(string address, string navigationUrl)
        {
            Address = address.Trim('/');

            IHalJsonParser        parser  = new HalJsonParser();
            IHalHttpClientFactory factory = new HalHttpClientFactory(parser);

            Client        = factory.CreateClient();
            NavigationUrl = navigationUrl;

            UpdateNavigation();
        }
예제 #3
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            // Create the default parser
            IHalJsonParser parser = new HalJsonParser();

            // Create the factory
            IHalHttpClientFactory factory = new HalHttpClientFactory(parser);
        }
예제 #4
0
        static void Main(string[] args)
        {
            var parser  = new HalJsonParser();
            var factory = new HalHttpClientFactory(parser);

            var tokenClient = new TokenClient(
                "https://namidp01.rogfk.no/nidp/oauth/nam/token",
                "6e1cf7b4-b107-42b3-9435-8fda70726c6a",
                "6y4FUuP9BfAXeVqguNKT0ofToIwN5RdB1PaUvx_nCMiQbH9NeGq3pp0jQB9zOQ0APOxEbodzJXp-8RVux6318A"
                );
            var tokenResponse = tokenClient.RequestResourceOwnerPasswordAsync("pwfatut", "pwfatut", "fint-client")
                                .Result;

            using (var client = factory.CreateClient())
            {
                client.HttpClient.SetBearerToken(tokenResponse.AccessToken);

                var response = client
                               .GetAsync(new Uri(
                                             "https://beta.felleskomponent.no/administrasjon/personal/person")).Result;
                var links    = response.Resource.Links;
                var embedded = response.Resource.Embedded;

                //var firstObject = embedded["_entries"].First().State;
                IEnumerable <IEmbeddedResourceObject> allUnparsedPersons = embedded["_entries"].Take(10).AsEnumerable();


                Console.WriteLine($"Listing Users....(First 10)");
                Console.WriteLine();

                foreach (var entry in allUnparsedPersons)
                {
                    var person = PersonFactory.create(entry.State);

                    Console.WriteLine($"Navn: {person.Navn.Fornavn} {person.Navn.Etternavn}");
                    Console.WriteLine($"E-Post: {person.Kontaktinformasjon.Epostadresse}");
                    Console.WriteLine($"Addresse: {person.Bostedsadresse.Adresselinje[0]},{person.Bostedsadresse.Postnummer} {person.Bostedsadresse.Poststed} ");
                    Console.WriteLine();
                }

                var selfLink = links["self"].Single().Href;
                //var person = PersonFactory.create(firstObject);

                //Console.WriteLine("Person: {0} {1}", person.Navn.Fornavn, person.Navn.Etternavn);
                //Console.WriteLine("Self link: " + selfLink);
            }
        }
예제 #5
0
        private List <Person> GetPersonsFromFINTApi()
        {
            var parser  = new HalJsonParser();
            var factory = new HalHttpClientFactory(parser);

            var tokenClient   = new TokenClient(OAuthSettings.accessTokenUri, OAuthSettings.clientId, OAuthSettings.clientSecret);
            var tokenResponse = tokenClient.RequestResourceOwnerPasswordAsync(OAuthSettings.username, OAuthSettings.password, OAuthSettings.scope).Result;

            var persons = new List <Person>();

            using (var client = factory.CreateClient())
            {
                client.HttpClient.SetBearerToken(tokenResponse.AccessToken);

                var response = client
                               .GetAsync(new Uri(
                                             OAuthSettings.felleskomponentUri + OAuthSettings.additionalAdministrasjonPersonalPersonUri)).Result;
                var links    = response.Resource.Links;
                var embedded = response.Resource.Embedded;
                var entries  = embedded["_entries"].ToList();
                entries.ForEach(e => persons.Add(PersonFactory.create(e.State)));
            }
            return(persons);
        }