Ejemplo n.º 1
0
 internal BaseSaveResult(DataServiceContext context, string method, DataServiceRequest[] queries, SaveChangesOptions options, AsyncCallback callback, object state) : base(context, method, callback, state)
 {
     this.entryIndex = -1;
     this.RequestInfo = new System.Data.Services.Client.RequestInfo(context);
     this.Options = options;
     this.SerializerInstance = new Serializer(this.RequestInfo);
     if (queries == null)
     {
         this.ChangedEntries = (from o in context.EntityTracker.Entities.Cast<Descriptor>().Union<Descriptor>(context.EntityTracker.Links.Cast<Descriptor>()).Union<Descriptor>((from e in context.EntityTracker.Entities select e.StreamDescriptors).Cast<Descriptor>())
             where o.IsModified && (o.ChangeOrder != uint.MaxValue)
             orderby o.ChangeOrder
             select o).ToList<Descriptor>();
         foreach (Descriptor descriptor in this.ChangedEntries)
         {
             descriptor.ContentGeneratedForSave = false;
             descriptor.SaveResultWasProcessed = 0;
             descriptor.SaveError = null;
             if (descriptor.DescriptorKind == DescriptorKind.Link)
             {
                 object target = ((LinkDescriptor) descriptor).Target;
                 if (target != null)
                 {
                     Descriptor entityDescriptor = context.EntityTracker.GetEntityDescriptor(target);
                     if (EntityStates.Unchanged == entityDescriptor.State)
                     {
                         entityDescriptor.ContentGeneratedForSave = false;
                         entityDescriptor.SaveResultWasProcessed = 0;
                         entityDescriptor.SaveError = null;
                     }
                 }
             }
         }
     }
     else
     {
         this.ChangedEntries = new List<Descriptor>();
     }
 }