/// <summary> /// Executes a request and transforms a 412 and 409 response to respective exception type. /// </summary> private async Task <JToken> TransformHttpException(Func <Task <JToken> > action) { MobileServiceInvalidOperationException error = null; try { return(await action()); } catch (MobileServiceInvalidOperationException ex) { if (ex.Response != null && ex.Response.StatusCode != HttpStatusCode.PreconditionFailed && ex.Response.StatusCode != HttpStatusCode.Conflict) { throw; } error = ex; } Tuple <string, JToken> responseContent = await this.ParseContent(error.Response); JObject value = responseContent.Item2.ValidItemOrNull(); if (error.Response.StatusCode == HttpStatusCode.Conflict) { error = new MobileServiceConflictException(error, value); } else if (error.Response.StatusCode == HttpStatusCode.PreconditionFailed) { error = new MobileServicePreconditionFailedException(error, value); } throw error; }
/// <summary> /// Executes a request and transforms a 412 and 409 response to respective exception type. /// </summary> private async Task<JToken> TransformHttpException(Func<Task<JToken>> action) { MobileServiceInvalidOperationException error = null; try { return await action(); } catch (MobileServiceInvalidOperationException ex) { if (ex.Response != null && ex.Response.StatusCode != HttpStatusCode.PreconditionFailed && ex.Response.StatusCode != HttpStatusCode.Conflict) { throw; } error = ex; } Tuple<string, JToken> responseContent = await this.ParseContent(error.Response); JObject value = responseContent.Item2 as JObject; if (error.Response.StatusCode == HttpStatusCode.Conflict) { error = new MobileServiceConflictException(error, value); } else if (error.Response.StatusCode == HttpStatusCode.PreconditionFailed) { error = new MobileServicePreconditionFailedException(error, value); } throw error; }