Advertisement
Guest User

Untitled

a guest
Feb 27th, 2015
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.27 KB | None | 0 0
  1. `public class ListExampleViewModel
  2. {
  3. SecurityToken sToken = null;
  4. public ListExampleViewModel()
  5. {
  6. GlobalConstants.isGetToken = true;
  7. var listResults = REQ_RESP.postAndGetResponse((new ListService().GetList("xx","xxx")));
  8.  
  9. listResults.Subscribe(x =>
  10. {
  11. Console.WriteLine("nn..................................2");
  12. Console.WriteLine("Received Response==>" + x);
  13. });
  14. }
  15. }`
  16.  
  17. `public class REQ_RESP
  18. {
  19. private static string receivedAction = "";
  20. private static string receivedPostDate = "";
  21.  
  22.  
  23. public static IObservable<string> postAndGetResponse(String postData)
  24. {
  25. if (GlobalConstants.isGetToken)
  26. {
  27. //Pre Request for every reusest
  28. receivedPostDate = postData;
  29. GlobalConstants.isGetToken = false;
  30. getServerTokenMethod();
  31. postData = receivedPostDate;
  32. }
  33.  
  34. HttpWebRequest serviceRequest =
  35. (HttpWebRequest)WebRequest.Create(new Uri(Constants.SERVICE_URI));
  36.  
  37.  
  38. var fetchRequestStream =
  39. Observable.FromAsyncPattern<Stream>(serviceRequest.BeginGetRequestStream,
  40. serviceRequest.EndGetRequestStream);
  41. var fetchResponse =
  42. Observable.FromAsyncPattern<WebResponse>(serviceRequest.BeginGetResponse,
  43. serviceRequest.EndGetResponse);
  44.  
  45. Func<Stream, IObservable<HttpWebResponse>> postDataAndFetchResponse = st =>
  46. {
  47. using (var writer = new StreamWriter(st) as StreamWriter)
  48. {
  49. writer.Write(postData);
  50. writer.Close();
  51. }
  52. return fetchResponse().Select(rp => (HttpWebResponse)rp);
  53. };
  54.  
  55. Func<HttpWebResponse, IObservable<string>> fetchResult = rp =>
  56. {
  57. if (rp.StatusCode == HttpStatusCode.OK)
  58. {
  59.  
  60. using (var reader = new StreamReader(rp.GetResponseStream()))
  61. {
  62. string result = reader.ReadToEnd();
  63. reader.Close();
  64. rp.GetResponseStream().Close();
  65. XDocument xdoc = XDocument.Parse(result);
  66. Console.WriteLine(xdoc);
  67. return Observable.Return<string>(result);
  68. }
  69. }
  70. else
  71. {
  72. var msg = "HttpStatusCode == " + rp.StatusCode.ToString();
  73. var ex = new System.Net.WebException(msg,
  74. WebExceptionStatus.ReceiveFailure);
  75. return Observable.Throw<string>(ex);
  76. }
  77.  
  78. };
  79.  
  80. return
  81. from st in fetchRequestStream()
  82. from rp in postDataAndFetchResponse(st)
  83. from str in fetchResult(rp)
  84. select str;
  85. }
  86.  
  87. public static void getServerTokenMethod()
  88. {
  89. SecurityToken token = new SecurityToken();
  90.  
  91. var getTokenResults = REQ_RESP.postAndGetResponse((new ServerToken().GetServerToken()));
  92.  
  93. getTokenResults.Subscribe(x =>
  94. {
  95. ServerToken serverToken = new ServerToken();
  96. ServiceModel sm = new ServiceModel();
  97. //Parsing Response
  98. serverToken = extract(x, sm);
  99. if (!(string.IsNullOrEmpty(sm.NetErrorCode)))
  100. {
  101. MessageBox.Show("Show Error Message");
  102. }
  103. else
  104. {
  105. Console.WriteLine("nn..................................1");
  106. Console.WriteLine("nnserverToken.token==>" + serverToken.token);
  107. Console.WriteLine("nnserverToken.pk==>" + serverToken.pk);
  108. }
  109. },
  110. ex =>
  111. {
  112. MessageBox.Show("Exception = " + ex.Message);
  113. },
  114. () =>
  115. {
  116. Console.WriteLine("End of Process.. Releaseing all Resources used.");
  117. });
  118. }
  119. }`
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement