/// <summary> /// Creates a data service context. /// </summary> /// <returns>The new DataServiceContext instance.</returns> public override IMediaDataServiceContext CreateDataServiceContext() { DataServiceContext dataContext = new DataServiceContext(_azureMediaServicesEndpoint, DataServiceProtocolVersion.V3) { IgnoreMissingProperties = true, IgnoreResourceNotFoundException = true, MergeOption = MergeOption.PreserveChanges, }; var clientRequestIdAdapter = new ClientRequestIdAdapter(); this._dataServiceAdapter.Adapt(dataContext); this._serviceVersionAdapter.Adapt(dataContext); this._userAgentAdapter.Adapt(dataContext); clientRequestIdAdapter.Adapt(dataContext); dataContext.ReadingEntity += this.OnReadingEntity; var queryRetryPolicy = GetQueryRetryPolicy(null); var context = new MediaDataServiceContext(dataContext, queryRetryPolicy, clientRequestIdAdapter); queryRetryPolicy.RetryPolicyAdapter = context; return(context); }
/// <summary> /// Creates instance of <see cref="IMediaDataServiceContext"/> with contains additional applyed <see cref="IDataServiceContextAdapter"/> adapters /// </summary> /// <param name="adapters"></param> /// <returns><see cref="IMediaDataServiceContext"/></returns> public override IMediaDataServiceContext CreateDataServiceContext(IEnumerable <IDataServiceContextAdapter> adapters) { DataServiceContext dataContext = new DataServiceContext(_azureMediaServicesEndpoint, DataServiceProtocolVersion.V3) { IgnoreMissingProperties = true, IgnoreResourceNotFoundException = true, MergeOption = MergeOption.PreserveChanges, }; List <IDataServiceContextAdapter> dataServiceContextAdapters = GetDefaultDataContextAdapters().ToList(); dataServiceContextAdapters.AddRange(adapters.ToList()); dataServiceContextAdapters.ForEach(c => c.Adapt(dataContext)); ClientRequestIdAdapter clientRequestIdAdapter = dataServiceContextAdapters.FirstOrDefault(c => c is ClientRequestIdAdapter) as ClientRequestIdAdapter; dataContext.ReadingEntity += OnReadingEntity; var queryRetryPolicy = GetQueryRetryPolicy(null); var context = new MediaDataServiceContext(dataContext, queryRetryPolicy, clientRequestIdAdapter); queryRetryPolicy.RetryPolicyAdapter = context; return(context); }