Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public IEnumerable<Intuit.Ipp.Data.Qbo.Bill> FilterBills(DataServices dataServices, int startPage, int resultsPerPage, DateTime After, DateTime Before)
- {
- StringBuilder requestXML = new StringBuilder();
- StringBuilder responseXML = new StringBuilder();
- var requestBody =
- "PageNum={0}&ResultsPerPage={1}&Filter=LastUpdatedTime :AFTER: {2} :AND: LastUpdatedTime :BEFORE: {3}&Sort=LastUpdatedTime HighToLow";
- requestBody = String.Format(requestBody, startPage, resultsPerPage, After.ToString("yyyy-MM-ddThh:mm:sszzz"),
- Before.ToString("yyyy-MM-ddThh:mm:sszzz"));
- HttpWebRequest httpWebRequest =
- WebRequest.Create(dataServices.ServiceContext.BaseUrl + "bills/v2/" +
- dataServices.ServiceContext.RealmId) as HttpWebRequest;
- httpWebRequest.Method = "POST";
- httpWebRequest.ContentType = "application/x-www-form-urlencoded";
- httpWebRequest.Headers.Add("Authorization", GetDevDefinedOAuthHeader(httpWebRequest, requestBody));
- requestXML.Append(requestBody);
- UTF8Encoding encoding = new UTF8Encoding();
- byte[] content = encoding.GetBytes(requestXML.ToString());
- using (var stream = httpWebRequest.GetRequestStream())
- {
- stream.Write(content, 0, content.Length);
- }
- HttpWebResponse httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse;
- using (Stream data = httpWebResponse.GetResponseStream())
- {
- Intuit.Ipp.Data.Qbo.SearchResults searchResults =
- (Intuit.Ipp.Data.Qbo.SearchResults)
- dataServices.ServiceContext.Serializer.Deserialize<Intuit.Ipp.Data.Qbo.SearchResults>(
- new StreamReader(data).ReadToEnd());
- return ((Intuit.Ipp.Data.Qbo.Bills) searchResults.CdmCollections).Bill.ToList();
- }
- }
- private string GetDevDefinedOAuthHeader(HttpWebRequest webRequest, string requestBody)
- {
- OAuthConsumerContext consumerContext = new OAuthConsumerContext
- {
- ConsumerKey = consumerKey,
- ConsumerSecret = consumerSecret,
- SignatureMethod = SignatureMethod.HmacSha1,
- UseHeaderForOAuthParameters = true
- };
- consumerContext.UseHeaderForOAuthParameters = true;
- OAuthSession oSession = new OAuthSession(consumerContext, "https://www.example.com",
- "https://www.example.com",
- "https://www.example.com");
- oSession.AccessToken = new TokenBase
- {
- Token = accessToken,
- ConsumerKey = consumerKey,
- TokenSecret = accessTokenSecret
- };
- IConsumerRequest consumerRequest = oSession.Request();
- consumerRequest = ConsumerRequestExtensions.ForMethod(consumerRequest, webRequest.Method);
- consumerRequest = ConsumerRequestExtensions.ForUri(consumerRequest, webRequest.RequestUri);
- if (webRequest.Headers.Count > 0)
- {
- ConsumerRequestExtensions.AlterContext(consumerRequest, context => context.Headers = webRequest.Headers);
- if (webRequest.Headers[HttpRequestHeader.ContentType] == "application/x-www-form-urlencoded")
- {
- Dictionary<string, string> formParameters = new Dictionary<string, string>();
- foreach (string formParameter in requestBody.Split('&'))
- {
- formParameters.Add(formParameter.Split('=')[0], formParameter.Split('=')[1]);
- }
- consumerRequest = consumerRequest.WithFormParameters(formParameters);
- }
- }
- consumerRequest = consumerRequest.SignWithToken();
- return consumerRequest.Context.GenerateOAuthParametersForHeader();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement