public DBCObject[] Create(DBCObject[] newObjects, out DBDCReference.SaveResult[] result)
 {
     return CreateUpdate(newObjects, "Create", out result);
 }
 public DBCObject Update(DBCObject updateObject, out DBDCReference.SaveResult result)
 {
     return CreateUpdate(updateObject, "Update", out result);
 }
 public DBCObject Create(DBCObject newObject, out DBDCReference.SaveResult result)
 {
     return CreateUpdate(newObject, "Create", out result);
 }
 public DBCObject(DBDCReference.sObject sobject)
 {
     init(sobject);
     initObject();
 }
 private void init(DBDCReference.sObject sobject)
 {
     _anyIndexer = new Dictionary<string, int>();
     _fields = new Dictionary<string, object>();
     _any = new ArrayList();
     if (sobject == null)
     {
         _sobject = new DBDCReference.sObject();
     }
     else
     {
         _sobject = sobject;
     }
 }
            private DBCObject[] MakeRecords(DBDCReference.sObject[] sObjects)
            {
                List<DBCObject> objs = new List<DBCObject>();

                if (sObjects != null)
                {
                    foreach (DBDCReference.sObject obj in sObjects)
                    {
                        objs.Add(new DBCObject(obj));
                    }
                }

                return objs.ToArray();
            }
        private DBCObject[] CreateUpdate(DBCObject[] newObjects, string op, out DBDCReference.SaveResult[] result)
        {
            DBDCReference.sObject[] _newObjects = new DBDCReference.sObject[newObjects.Length];
            for (int i = 0; i < newObjects.Length; i++)
                _newObjects[i] = newObjects[i].SoapObject;
            if (op.Equals("Create")) {
            soapclient.create(context.sessionHeader, context.callOptions, context.assignmentRuleHeader,
                context.mruHeader, context.allowFieldTruncationHeader, context.disableFeedTrackingHeader, context.allOrNoneHeader,
                context.debuggingHeader, context.packageVersionHeader, context.emailHeader, _newObjects, out result);
            } else {
            soapclient.update(context.sessionHeader, context.callOptions, context.assignmentRuleHeader,
                context.mruHeader, context.allowFieldTruncationHeader, context.disableFeedTrackingHeader, context.allOrNoneHeader,
                context.debuggingHeader, context.packageVersionHeader, context.emailHeader, _newObjects, out result);
            }
            for (int i = 0; i < result.Length; i++)
            {
                newObjects[i].Id = result[i].id;
//                newObjects[i].SetStringField("Id", result[i].id);
            }

            return newObjects;
        }
 private DBCObject CreateUpdate(DBCObject newObject, string op, out DBDCReference.SaveResult result)
 {
     DBDCReference.SaveResult[] results;
     DBCObject[] savedObjects = this.CreateUpdate(new DBCObject[] { newObject }, op, out results);
     result = results[0];
     newObject.Id = result.id;
     return newObject;
 }