Ejemplo n.º 1
0
 protected IEnumerable <LinkDescriptor> RelatedLinks(EntityDescriptor entityDescriptor)
 {
     foreach (LinkDescriptor iteratorVariable0 in this.RequestInfo.EntityTracker.Links)
     {
         if ((iteratorVariable0.Source == entityDescriptor.Entity) && (iteratorVariable0.Target != null))
         {
             EntityDescriptor iteratorVariable1 = this.RequestInfo.EntityTracker.GetEntityDescriptor(iteratorVariable0.Target);
             if ((Util.IncludeLinkState(iteratorVariable1.SaveResultWasProcessed) || ((iteratorVariable1.SaveResultWasProcessed == 0) && Util.IncludeLinkState(iteratorVariable1.State))) || (((iteratorVariable1.Identity != null) && (iteratorVariable1.ChangeOrder < entityDescriptor.ChangeOrder)) && (((iteratorVariable1.SaveResultWasProcessed == 0) && (EntityStates.Added == iteratorVariable1.State)) || (EntityStates.Added == iteratorVariable1.SaveResultWasProcessed))))
             {
                 yield return(iteratorVariable0);
             }
         }
     }
 }
Ejemplo n.º 2
0
 private void HandleResponsePost(EntityDescriptor entityDescriptor, string etag)
 {
     try
     {
         if ((EntityStates.Added != entityDescriptor.State) && (EntityStates.Added != entityDescriptor.StreamState))
         {
             System.Data.Services.Client.Error.ThrowBatchUnexpectedContent(InternalError.EntityNotAddedState);
         }
         if (this.ProcessResponsePayload)
         {
             this.MaterializeResponse(entityDescriptor, this.CreateResponseInfo(entityDescriptor), etag);
         }
         else
         {
             entityDescriptor.ETag  = etag;
             entityDescriptor.State = EntityStates.Unchanged;
         }
         if (entityDescriptor.StreamState != EntityStates.Added)
         {
             foreach (LinkDescriptor descriptor in this.RelatedLinks(entityDescriptor))
             {
                 if (Util.IncludeLinkState(descriptor.SaveResultWasProcessed) || (descriptor.SaveResultWasProcessed == EntityStates.Added))
                 {
                     HandleResponsePost(descriptor);
                 }
             }
         }
     }
     finally
     {
         if (entityDescriptor.StreamState == EntityStates.Added)
         {
             entityDescriptor.State       = EntityStates.Modified;
             entityDescriptor.StreamState = EntityStates.Unchanged;
         }
     }
 }