public BatchChangeSetRequestItem(ChangeSetRequestItem copy, HttpRequestMessage parentRequest) : base(copy.Requests) { Contract.Requires<ArgumentNullException>(parentRequest != null); _parentRequest = parentRequest; _changeSetContext = new ChangeSetContext(); }
public BatchChangeSetRequestItem(ChangeSetRequestItem copy, HttpRequestMessage parentRequest) : base(copy.Requests) { Contract.Requires <ArgumentNullException>(parentRequest != null); _parentRequest = parentRequest; _changeSetContext = new ChangeSetContext(); }
public static void OnChangeSetFailure(this ODataController oDataController, Task onFailureTask) { Contract.Requires <ArgumentNullException>(oDataController != null); Contract.Requires <ArgumentNullException>(onFailureTask != null); ChangeSetContext changeSetContext = oDataController.Request.GetChangeSetContext(); if (changeSetContext != null) { changeSetContext.AddOnChangeSetFailureTask(onFailureTask); } }
public static void TrySetChangeSetContentIdEntity <TEntity>(this HttpRequestMessage request, TEntity entity) { int?requestContentId = request.ContentId(); ChangeSetContext changeSetContext = request.GetChangeSetContext(); if ((changeSetContext == null) || (!requestContentId.HasValue)) { return; } changeSetContext.AddContentIdRecord(requestContentId.Value, request, entity, typeof(TEntity)); }
/// <summary> /// Set the async task to call when the changeset is complete, if the current request is within a changeset. /// If the current request is not within a changeset, <paramref name="completionTask"/> is returned. /// </summary> /// <param name="oDataController"></param> /// <param name="completionTask"></param> //public static Task<HttpResponseMessage> OnChangeSetSuccess(this ODataController oDataController, Task<HttpResponseMessage> completionTask) //{ // Contract.Requires<ArgumentNullException>(oDataController != null); // Contract.Requires<ArgumentNullException>(completionTask != null); // ChangeSetContext changeSetContext = oDataController.Request.GetChangeSetContext(); // if (changeSetContext == null) // { // Not in a ChangeSet, so execute completionTask immediately // return completionTask; // } // else // { // changeSetContext.AddOnChangeSetSuccessTask(completionTask); // return new Task<HttpResponseMessage>(() => new HttpResponseMessage(HttpStatusCode.Accepted) // { Content = new StringContent("Changeset action method called; pending completion task.") }); // } //} public static Task OnChangeSetSuccess(this ODataController oDataController, Task completionTask) { Contract.Requires <ArgumentNullException>(oDataController != null); Contract.Requires <ArgumentNullException>(completionTask != null); ChangeSetContext changeSetContext = oDataController.Request.GetChangeSetContext(); if (changeSetContext == null) { // Not in a ChangeSet, so return completionTask so it is executed next return(completionTask); } else { changeSetContext.AddOnChangeSetSuccessTask(completionTask); return(Task.FromResult(true)); } }
internal static ContentIdRecord GetReferencedContentIdEntity(HttpRequestMessage requestMessage) { Contract.Assert(requestMessage != null); ChangeSetContext changeSetContext = requestMessage.GetChangeSetContext(); string initialRequestUri = requestMessage.GetInitialChangeSetRequestUri(); List <int> contentIds; if ((changeSetContext == null) || (initialRequestUri == null) || !TryExtractContentIdReferences(initialRequestUri, out contentIds)) { return(null); } Contract.Assert(contentIds.Count == 1); int requestContentId = contentIds[0]; return(changeSetContext.GetContentIdRecord(requestContentId)); }
public static bool ContentIdReferenceToEntity(this HttpRequestMessage request, string reference, out object referencedEntity) { referencedEntity = null; int contentId; if (!ContentIdHelper.TryParseContentIdReference(reference, out contentId)) { return(false); } ChangeSetContext changeSetContext = request.GetChangeSetContext(); if (changeSetContext != null) { ContentIdRecord contentIdRecord = changeSetContext.GetContentIdRecord(contentId); if (contentIdRecord != null) { referencedEntity = contentIdRecord.Entity; } } return(referencedEntity != null); }
internal static void StoreLocationHeaderForContentId(HttpResponseMessage response, ChangeSetContext changeSetContext) { int?requestContentId = response.RequestMessage.ContentId(); if (requestContentId.HasValue) { if (response.Headers.Location != null) { changeSetContext.GetContentIdRecord(requestContentId.Value).Location = response.Headers.Location.AbsoluteUri; } } }