Exemplo n.º 1
0
 protected override IAsyncResult BeginInvokeCore(InvokeArgs invokeArgs, AsyncCallback callback, object userState)
 {
     var returnData = Invoke(invokeArgs.OperationName, invokeArgs.Parameters);
     var asyncResult = new LocalAsyncResult(callback, userState, returnData);
     _syncContext.Post(o => ((LocalAsyncResult)o).Complete(), asyncResult);
     return asyncResult;
 }
Exemplo n.º 2
0
        protected override sealed IAsyncResult BeginSubmitCore(EntityChangeSet changeSet, AsyncCallback callback, object userState)
        {
            IEnumerable<ChangeSetEntry> operations = Submit(changeSet);

            LocalAsyncResult asyncResult = new LocalAsyncResult(callback, userState, changeSet, operations);
            _syncContext.Post(delegate(object o)
                                  {
                                      ((LocalAsyncResult)o).Complete();
                                  }, asyncResult);

            return asyncResult;
        }
Exemplo n.º 3
0
        //protected override sealed IAsyncResult BeginQueryCore(EntityQuery query, AsyncCallback callback, object userState)
        //{
        //    IQueryable<Entity> localQuery = Query(query);
        //    LocalAsyncResult asyncResult = new QueryAsyncResult(callback, userState, localQuery);
        //    this.synchronizationContext.Post(o => ((LocalAsyncResult)o).Complete(), asyncResult);
        //    return asyncResult;
        //}
        protected override IAsyncResult BeginQueryCore(EntityQuery query, AsyncCallback callback, object userState)
        {
            Debug.WriteLine("BeginQueryCore(" + query.QueryName + ", " + _queriesInProgress.Count + ")");
            if (_queriesInProgress.Count != 0)
                Debug.WriteLine("...open queries found");
            _queriesInProgress.Add(query.QueryName);
            if (query.QueryName == "GetPermissionsForUser")
                Debug.WriteLine(query.QueryName);
            IQueryable<Entity> localQuery = Query(query.QueryName, query.Parameters);

            LocalAsyncResult asyncResult = new LocalAsyncResult(query.QueryName, callback, userState, localQuery);
            _syncContext.Post(delegate(object o)
                                  {
                                      Debug.WriteLine("calling .Complete()");
                                      ((LocalAsyncResult)o).Complete();
                                  }, asyncResult);
            return asyncResult;
        }