public DataServiceContextWrapper()

in src/Core/Vipr/odataDemo.cs [175:271]


        public DataServiceContextWrapper(Uri serviceRoot, global::Microsoft.OData.Client.ODataProtocolVersion maxProtocolVersion, global::System.Func<global::System.Threading.Tasks.Task<string>> accessTokenGetter)

            : base(serviceRoot, maxProtocolVersion)

        {

            _accessTokenGetter = accessTokenGetter;

            _accessTokenSetter = SetToken;

            

            IgnoreMissingProperties = true;



            BuildingRequest += (sender, args) =>

            {

           

                args.Headers.Add("Authorization", "Bearer " + _accessToken);

                args.Headers.Add("X-ClientService-ClientTag", XClientStringClientTag);

            };

        

            Configurations.RequestPipeline.OnEntryStarting((args) =>

            {

                var entity = (EntityBase)args.Entity;



                if ((!entity.ChangedProperties.IsValueCreated || entity.ChangedProperties.Value.Count == 0))

                {

                    args.Entry.Properties = new ODataProperty[0];

                    return;

                }



                if (!_modifiedEntities.Contains(entity))

                {

                    _modifiedEntities.Add(entity);

                }



                IEnumerable<ODataProperty> properties = new ODataProperty[0];



                if (entity.ChangedProperties.IsValueCreated)

                {

                    properties = properties.Concat(args.Entry.Properties.Where(i => entity.ChangedProperties.Value.Contains(i.Name)));

                }



                args.Entry.Properties = properties;

            });



            Configurations.ResponsePipeline.OnEntityMaterialized((args) =>

            {

                var entity = (EntityBase)args.Entity;



                entity.ResetChanges();

            });



            OnCreated();

        }