public void retrieveMetadataForFile()
        {
            Dictionary <String, Link> linksFromFirstFile = OAuthWorkFlow.linksFrom(files.page[3]);

            firstFileSelfUri = linksFromFirstFile["self"].uri;

            Hammock.Authentication.OAuth.OAuthCredentials credentials = OAuthWorkFlow.createOAuthCredentials(OAuthType.ProtectedResource, ApiCredentials.TOKEN.token,
                                                                                                             ApiCredentials.TOKEN.secret, null, null);


            Hammock.RestClient client = new Hammock.RestClient()
            {
                Authority   = "",
                Credentials = credentials
            };

            Hammock.RestRequest request = new Hammock.RestRequest()
            {
                Path = firstFileSelfUri
            };

            request.AddHeader("Accept", "application/vnd.deere.axiom.v3+json");
            Hammock.RestResponse response = client.Request(request);

            SampleApp.Sources.generated.v3.File firstFileDetails = Deserialise <SampleApp.Sources.generated.v3.File>(response.ContentStream);

            filename = firstFileDetails.name;
        }
        public void retrieveApiCatalog()
        {
            Hammock.Authentication.OAuth.OAuthCredentials credentials = OAuthWorkFlow.createOAuthCredentials(OAuthType.ProtectedResource, ApiCredentials.TOKEN.token,
                                                                                                             ApiCredentials.TOKEN.secret, null, null);


            Hammock.RestClient client = new Hammock.RestClient()
            {
                Authority   = "",
                Credentials = credentials
            };

            Hammock.RestRequest request = new Hammock.RestRequest()
            {
                Path = "https://apicert.soa-proxy.deere.com/platform/"
            };

            request.AddHeader("Accept", "application/vnd.deere.axiom.v3+json");
            Hammock.RestResponse response = client.Request(request);

            ApiCatalog apiCatalog = Deserialise <ApiCatalog>(response.ContentStream);

            links = OAuthWorkFlow.linksFrom(apiCatalog);

            getFiles();

            retrieveMetadataForFile();

            downloadFileContentsAndComputeMd5();
            downloadFileInPiecesAndComputeMd5();
        }
        public void getCurrentUser()
        {
            Hammock.RestClient client = getRestClient();

            Hammock.RestRequest request = new Hammock.RestRequest()
            {
                Path = links["currentUser"].uri
            };

            request.AddHeader("Accept", "application/vnd.deere.axiom.v3+json");
            Hammock.RestResponse response = client.Request(request);

            Resource currentUser = Download.Deserialise <User>(response.ContentStream);

            userOrganizations = OAuthWorkFlow.linksFrom(currentUser)["organizations"].uri;
        }
        public void getUserOrganizations()
        {
            Hammock.RestClient client = getRestClient();

            Hammock.RestRequest request = new Hammock.RestRequest()
            {
                Path = userOrganizations
            };

            request.AddHeader("Accept", "application/vnd.deere.axiom.v3+json");
            Hammock.RestResponse response = client.Request(request);

            CollectionPageDeserializer ds = new CollectionPageDeserializer();

            CollectionPage <Organization> organizations = ds.deserialize <SampleApp.Sources.generated.v3.Organization>(response.Content);


            Dictionary <String, Link> linksFromFirst = OAuthWorkFlow.linksFrom(organizations.page[0]);

            fileUploadLink = linksFromFirst["uploadFile"];
        }
        public void retrieveApiCatalog()
        {
            Hammock.RestClient client = getRestClient();

            Hammock.RestRequest request = new Hammock.RestRequest()
            {
                Path = "https://apicert.soa-proxy.deere.com/platform/"
            };

            request.AddHeader("Accept", "application/vnd.deere.axiom.v3+json");
            Hammock.RestResponse response = client.Request(request);

            ApiCatalog apiCatalog = Download.Deserialise <ApiCatalog>(response.ContentStream);

            links = OAuthWorkFlow.linksFrom(apiCatalog);


            getCurrentUser();
            getUserOrganizations();
            addFile();
            uploadFile();
            deleteUploadedFile();
        }