Sage.SData.Client.Core.SDataService.CreateAsync C# (CSharp) Method

CreateAsync() public method

Asynchronous PUT to the server
public CreateAsync ( Sage.SData.Client.Core.SDataBaseRequest request, ISyndicationResource resource ) : AsyncRequest
request Sage.SData.Client.Core.SDataBaseRequest The request that identifies the resource within the syndication data source.
resource ISyndicationResource The resource that should be created asynchronously.
return AsyncRequest
        public virtual AsyncRequest CreateAsync(SDataBaseRequest request, ISyndicationResource resource)
        {
            Guard.ArgumentNotNull(request, "request");
            Guard.ArgumentNotNull(resource, "resource");

            try
            {
                var url = new SDataUri(request.ToString()) {TrackingId = Guid.NewGuid().ToString()}.ToString();
                var operation = new RequestOperation(HttpMethod.Post, resource);
                var response = ExecuteRequest(url, operation, MediaType.Xml);
                var tracking = response.Content as Tracking;
                if (tracking == null)
                {
                    throw new SDataClientException("Unexpected content: " + response.Content);
                }
                return new AsyncRequest(this, response.Location, tracking);
            }
            catch (SDataClientException)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new SDataClientException(ex.Message, ex);
            }
        }