public async Task<string> Create(string name)
		{
			try
			{
				using (HttpClient httpClient = new HttpClient())
				{
					httpClient.BaseAddress = new Uri(_resource);
					httpClient.Timeout = new TimeSpan(0, 2, 0);
					httpClient.DefaultRequestHeaders.Add("OData-MaxVersion", "4.0");
					httpClient.DefaultRequestHeaders.Add("OData-Version", "4.0");
					httpClient.DefaultRequestHeaders.Accept.Add(
						new MediaTypeWithQualityHeaderValue("application/json"));
					httpClient.DefaultRequestHeaders.Authorization =
						new AuthenticationHeaderValue("Bearer", _accessToken);

					//Create
					JObject newAccount = new JObject
					{
						{"name", name},
						{"telephone1", "111-888-7777"}
					};

					//The URL will change in 2016 to include the API version - api/data/v8.0/accounts
					HttpResponseMessage createResponse =
						await httpClient.SendAsJsonAsync(HttpMethod.Post, "api/data/accounts", newAccount);

					if (!createResponse.IsSuccessStatusCode)
						return null;

					string accountUri = createResponse.Headers.GetValues("OData-EntityId").FirstOrDefault();
					return accountUri != null ?
						Guid.Parse(accountUri.Split('(', ')')[1]).ToString() :
						null;
				}
			}
			catch (Exception ex)
			{
				ShowException(ex);
				return null;
			}
		}
		public async Task<string> Update(string accountId)
		{
			try
			{
				using (HttpClient httpClient = new HttpClient())
				{
					httpClient.BaseAddress = new Uri(_resource);
					httpClient.Timeout = new TimeSpan(0, 2, 0);
					httpClient.DefaultRequestHeaders.Add("OData-MaxVersion", "4.0");
					httpClient.DefaultRequestHeaders.Add("OData-Version", "4.0");
					httpClient.DefaultRequestHeaders.Accept.Add(
						new MediaTypeWithQualityHeaderValue("application/json"));
					httpClient.DefaultRequestHeaders.Authorization =
						new AuthenticationHeaderValue("Bearer", _accessToken);

					//Update 
					JObject account = new JObject
					{
						{"websiteurl", "http://www.microsoft.com"}
					};

					//The URL will change in 2016 to include the API version - api/data/v8.0/accounts
					HttpResponseMessage updateResponse =
						await httpClient.SendAsJsonAsync(new HttpMethod("PATCH"), "api/data/accounts(" + accountId + ")", account);
					return updateResponse.IsSuccessStatusCode ? accountId : null;
				}
			}
			catch (Exception ex)
			{
				ShowException(ex);
				return null;
			}
		}
Example #3
0
		private async void CloseTask(string taskId)
		{
			JObject task = new JObject { { "statecode", 1 }, { "statuscode", 5 } };

			using (HttpClient httpClient = new HttpClient())
			{
				httpClient.BaseAddress = new Uri(ServiceUrl);
				httpClient.Timeout = new TimeSpan(0, 2, 0);
				httpClient.DefaultRequestHeaders.Add("OData-MaxVersion", "4.0");
				httpClient.DefaultRequestHeaders.Add("OData-Version", "4.0");
				httpClient.DefaultRequestHeaders.Accept.Add(
					new MediaTypeWithQualityHeaderValue("application/json"));
				httpClient.DefaultRequestHeaders.Authorization =
					new AuthenticationHeaderValue("Bearer", NSUserDefaults.StandardUserDefaults.StringForKey("AccessToken"));

				HttpResponseMessage closeResponse =
						await httpClient.SendAsJsonAsync(new HttpMethod("PATCH"), "api/data/tasks(" + taskId + ")", task);

				if (!closeResponse.IsSuccessStatusCode)
					return;
			}
		}