internal override void updateReferencesAfterDeserialize(SFRefereceResolver i_ReferenceResolver, bool i_ShouldAddToRelatedLists = true)
        {
            JToken  objectJson             = removeObjectJTokenFromAdditionalDictionary("RelatedRecord");
            sObject skillRequirementParent = DeserializationUtils.GetSingleObjectReference <sObject>(RelatedRecordId, objectJson, i_ReferenceResolver);

            switch (skillRequirementParent.attributes.type)
            {
            case "WorkOrder":
                RelatedRecord = (WorkOrder)skillRequirementParent;
                break;

            case "WorkOrderLineItem":
                RelatedRecord = (WorkOrderLineItem)skillRequirementParent;
                break;

            case "WorkType":
                RelatedRecord = (WorkType)skillRequirementParent;
                break;
            }
            if (RelatedRecord != null)
            {
                RelatedRecord.SkillRequirements.Add(this);
            }

            objectJson = removeObjectJTokenFromAdditionalDictionary("Skill");
            Skill      = DeserializationUtils.GetSingleObjectReference <Skill>(SkillId, objectJson, i_ReferenceResolver);
            Skill      = DeserializationUtils.CreateEmptyReferenceFromId(SkillId, Skill, i_ReferenceResolver);

            base.updateReferencesAfterDeserialize(i_ReferenceResolver);
        }
Example #2
0
        internal void postDeserialization(SFRefereceResolver i_refereceResolver = null)
        {
            if (i_refereceResolver == null)
            {
                i_refereceResolver = new SFRefereceResolver();
            }

            DeserializationUtils.RemoveListFromReferenceResolver(BreaksToDelete, i_refereceResolver);
            DeserializationUtils.RemoveListFromReferenceResolver(AssignedResourcesToDelete, i_refereceResolver);

            DeserializationUtils.AddListToReferenceResolver(Services, i_refereceResolver);
            DeserializationUtils.AddListToReferenceResolver(Absences, i_refereceResolver);
            DeserializationUtils.AddListToReferenceResolver(AssignedResourcesToUpdate, i_refereceResolver);

            if (AssignedResourcesToCreate != null)
            {
                AssignedResourcesToCreate.ForEach(ar => ar.updateReferencesAfterDeserialize(i_refereceResolver));
            }
            if (BreaksToCreate != null)
            {
                BreaksToCreate.ForEach(ra => ra.updateReferencesAfterDeserialize(i_refereceResolver));
            }

            //i_refereceResolver.UpdateStoredObjectsReferences();
        }
        internal override void updateReferencesAfterDeserialize(SFRefereceResolver i_ReferenceResolver, bool i_ShouldAddToRelatedLists = true)
        {
            JToken objectJson = removeObjectJTokenFromAdditionalDictionary("ServiceTerritory");

            ServiceTerritory = DeserializationUtils.GetSingleObjectReference <ServiceTerritory>(ServiceTerritoryId, objectJson, i_ReferenceResolver);

            objectJson = removeObjectJTokenFromAdditionalDictionary("ParentWorkOrderLineItem");
            ParentWorkOrderLineItem = DeserializationUtils.GetSingleObjectReference <WorkOrderLineItem>(ParentWorkOrderLineItemId, objectJson, i_ReferenceResolver);

            objectJson            = removeObjectJTokenFromAdditionalDictionary("RootWorkOrderLineItem");
            RootWorkOrderLineItem = DeserializationUtils.GetSingleObjectReference <WorkOrderLineItem>(RootWorkOrderLineItemId, objectJson, i_ReferenceResolver);

            objectJson = removeObjectJTokenFromAdditionalDictionary("WorkOrder");
            WorkOrder  = DeserializationUtils.GetSingleObjectReference <WorkOrder>(WorkOrderId, objectJson, i_ReferenceResolver);

            objectJson = removeObjectJTokenFromAdditionalDictionary("WorkType");
            WorkType   = DeserializationUtils.GetSingleObjectReference <WorkType>(WorkTypeId, objectJson, i_ReferenceResolver);

            VisitingHours__r = DeserializationUtils.GetSingleObjectReference <OperatingHours>(VisitingHours__c, i_ReferenceResolver);
            VisitingHours__r = DeserializationUtils.CreateEmptyReferenceFromId(VisitingHours__c, VisitingHours__r, i_ReferenceResolver);

            DeserializationUtils.ProcessRelatedObjectsCollection(skillRequirementsCollection, i_ReferenceResolver);
            skillRequirementsCollection = null;

            base.updateReferencesAfterDeserialize(i_ReferenceResolver);
        }
Example #4
0
        internal override void updateReferencesAfterDeserialize(SFRefereceResolver i_ReferenceResolver, bool i_ShouldAddToRelatedLists = true)
        {
            JToken objectJson = removeObjectJTokenFromAdditionalDictionary("ServiceCrew");

            ServiceCrew = DeserializationUtils.GetSingleObjectReference <ServiceCrew>(ServiceCrewId, objectJson, i_ReferenceResolver);
            if (ServiceCrew != null)
            {
                ServiceCrew.ServiceResources.Add(this);
            }

            DeserializationUtils.ProcessRelatedObjectsCollection(serviceTerritoriesCollection, i_ReferenceResolver);
            ServiceTerritoriesByType     = ServiceTerritories.ToLookup(stm => stm.TerritoryType);
            serviceTerritoriesCollection = null;

            DeserializationUtils.ProcessRelatedObjectsCollection(serviceResourceCapacitiesCollection, i_ReferenceResolver);
            serviceResourceCapacitiesCollection = null;

            DeserializationUtils.ProcessRelatedObjectsCollection(serviceResourceSkillsCollection, i_ReferenceResolver);
            serviceResourceSkillsCollection = null;

            DeserializationUtils.ProcessRelatedObjectsCollection(serviceCrewMembersCollection, i_ReferenceResolver);
            serviceCrewMembersCollection = null;

            DeserializationUtils.ProcessRelatedObjectsCollection(resourceShiftsCollection, i_ReferenceResolver);
            resourceShiftsCollection = null;

            base.updateReferencesAfterDeserialize(i_ReferenceResolver);
        }
Example #5
0
        internal virtual void updateReferencesAfterDeserialize(SFRefereceResolver i_ReferenceResolver, bool i_ShouldAddToRelatedLists = true)
        {
            if (m_JSONAdditionalData != null)
            {
                foreach (KeyValuePair <string, JToken> nonSchemaProperty in m_JSONAdditionalData)
                {
                    switch (nonSchemaProperty.Value.Type)
                    {
                    case JTokenType.Boolean:
                        BooleanFields[nonSchemaProperty.Key] = nonSchemaProperty.Value.Value <bool?>();
                        break;

                    case JTokenType.Float:
                    case JTokenType.Integer:
                        NumericFields[nonSchemaProperty.Key] = nonSchemaProperty.Value.Value <double?>();
                        break;

                    case JTokenType.Object:
                        JToken junctionToken = nonSchemaProperty.Value;
                        RelatedObjectCollection <sObject> deserializedJunctions = junctionToken.ToObject <RelatedObjectCollection <sObject> >();
                        DeserializationUtils.ProcessRelatedObjectsCollection(deserializedJunctions, i_ReferenceResolver);
                        JunctionFields[nonSchemaProperty.Key] = deserializedJunctions.records;
                        break;

                    case JTokenType.Date:
                        DateFields[nonSchemaProperty.Key] = nonSchemaProperty.Value.Value <DateTime?>();
                        break;

                    case JTokenType.String:
                        StringFields[nonSchemaProperty.Key] = nonSchemaProperty.Value.Value <string>();
                        break;
                    }
                }
            }
        }
 internal static void RemoveListFromReferenceResolver <T>(List <T> i_ObjectList, SFRefereceResolver i_RefereceResolver)
     where T : sObject
 {
     if (i_ObjectList != null)
     {
         i_ObjectList.ForEach(i_RefereceResolver.DeleteReference);
     }
 }
Example #7
0
        internal override void updateReferencesAfterDeserialize(SFRefereceResolver i_ReferenceResolver, bool i_ShouldAddToRelatedLists = true)
        {
            JToken objectJson = removeObjectJTokenFromAdditionalDictionary("RecordType");

            RecordType = DeserializationUtils.GetSingleObjectReference <RecordType>(RecordTypeId, objectJson, i_ReferenceResolver);

            base.updateReferencesAfterDeserialize(i_ReferenceResolver);
        }
 internal static void AddListToReferenceResolver <T>(List <T> i_ObjectList, SFRefereceResolver i_RefereceResolver)
     where T : sObject
 {
     if (i_ObjectList != null)
     {
         i_ObjectList.ForEach(i_RefereceResolver.AddReference);
     }
 }
        internal override void updateReferencesAfterDeserialize(SFRefereceResolver i_ReferenceResolver, bool i_ShouldAddToRelatedLists = true)
        {
            DeserializationUtils.ProcessRelatedObjectsCollection(scheduling_Policy_GoalsCollection, i_ReferenceResolver);
            scheduling_Policy_GoalsCollection = null;

            DeserializationUtils.ProcessRelatedObjectsCollection(scheduling_Policy_Work_RuleCollection, i_ReferenceResolver);
            scheduling_Policy_Work_RuleCollection = null;

            base.updateReferencesAfterDeserialize(i_ReferenceResolver);
        }
        internal override void updateReferencesAfterDeserialize(SFRefereceResolver i_ReferenceResolver, bool i_ShouldAddToRelatedLists = true)
        {
            JToken objectJson = removeObjectJTokenFromAdditionalDictionary("Resource");

            Resource = DeserializationUtils.GetSingleObjectReference <ServiceResource>(ResourceId, objectJson, i_ReferenceResolver);

            base.updateReferencesAfterDeserialize(i_ReferenceResolver);

            ScheduledSTM = Resource.GetServiceTerritoryMemberByDateTime(Start.Value);
        }
        internal override void updateReferencesAfterDeserialize(SFRefereceResolver i_ReferenceResolver, bool i_ShouldAddToRelatedLists = true)
        {
            JToken objectJson = removeObjectJTokenFromAdditionalDictionary("ServiceResource");

            ServiceResource = DeserializationUtils.GetSingleObjectReference <ServiceResource>(ServiceResourceId, objectJson, i_ReferenceResolver);
            if (ServiceResource != null)
            {
                ServiceResource.Capacities.Add(this);
            }

            base.updateReferencesAfterDeserialize(i_ReferenceResolver);
        }
Example #12
0
        internal override void updateReferencesAfterDeserialize(SFRefereceResolver i_ReferenceResolver, bool i_ShouldAddToRelatedLists = true)
        {
            JToken objectJson = removeObjectJTokenFromAdditionalDictionary("OperatingHours");

            OperatingHours = DeserializationUtils.GetSingleObjectReference <OperatingHours>(OperatingHoursId, objectJson, i_ReferenceResolver);
            if (OperatingHours != null)
            {
                OperatingHours.TimeSlots.Add(this);
            }

            base.updateReferencesAfterDeserialize(i_ReferenceResolver);
        }
 internal static void ProcessRelatedObjectsCollection <T>(RelatedObjectCollection <T> i_ObjectCollection,
                                                          SFRefereceResolver i_ReferenceResolver) where T : sObject
 {
     if (i_ObjectCollection != null)
     {
         foreach (T innerRecord in i_ObjectCollection.records)
         {
             i_ReferenceResolver.AddReference(innerRecord);
             innerRecord.updateReferencesAfterDeserialize(i_ReferenceResolver);
         }
     }
 }
Example #14
0
        //public static SFOptimizationResults Parse(string i_StringToPrase, bool i_IsManaged = true)
        //{
        //    return Parse(i_StringToPrase, i_IsManaged, null);
        //}

        internal static SFOptimizationResults Parse(string i_StringToPrase, SFRefereceResolver i_ReferenceReslover)
        {
            if (string.IsNullOrWhiteSpace(i_StringToPrase))
            {
                throw new ArgumentNullException("i_StringToPrase");
            }

            SFOptimizationResults parsedOptimizationObjects = JsonConvert.DeserializeObject <SFOptimizationResults>(i_StringToPrase,
                                                                                                                    DeserializationUtils.SFJsonSerializerSettings);

            parsedOptimizationObjects.postDeserialization(i_ReferenceReslover);
            return(parsedOptimizationObjects);
        }
        internal override void updateReferencesAfterDeserialize(SFRefereceResolver i_ReferenceResolver, bool i_ShouldAddToRelatedLists = true)
        {
            JToken objectJson = removeObjectJTokenFromAdditionalDictionary("OperatingHours");

            OperatingHours = DeserializationUtils.GetSingleObjectReference <OperatingHours>(OperatingHoursId, objectJson, i_ReferenceResolver);

            objectJson      = removeObjectJTokenFromAdditionalDictionary("ParentTerritory");
            ParentTerritory = DeserializationUtils.GetSingleObjectReference <ServiceTerritory>(ParentTerritoryId, objectJson, i_ReferenceResolver);

            objectJson        = removeObjectJTokenFromAdditionalDictionary("TopLevelTerritory");
            TopLevelTerritory = DeserializationUtils.GetSingleObjectReference <ServiceTerritory>(TopLevelTerritoryId, objectJson, i_ReferenceResolver);

            base.updateReferencesAfterDeserialize(i_ReferenceResolver);
        }
    internal static T CreateEmptyReferenceFromId <T>(string i_ObjectId, T i_Property,
                                                     SFRefereceResolver i_RefereceResolver) where T : sObject
    {
        if (i_Property == null)
        {
            if (!string.IsNullOrEmpty(i_ObjectId))
            {
                i_Property = (T)Activator.CreateInstance(typeof(T), i_ObjectId);
                i_RefereceResolver.AddReference(i_Property);
            }
        }

        return(i_Property);
    }
        internal override void updateReferencesAfterDeserialize(SFRefereceResolver i_ReferenceResolver, bool i_ShouldAddToRelatedLists = true)
        {
            HashSet <string> pinnedStatusesSet;

            if (string.IsNullOrEmpty(Pinned_Statuses__c))
            {
                pinnedStatusesSet = new HashSet <string>();
            }
            else
            {
                pinnedStatusesSet = Pinned_Statuses__c.Split(',').ToHashSet();
            }
            PinnedStatuses = pinnedStatusesSet.ToImmutableHashSet();

            base.updateReferencesAfterDeserialize(i_ReferenceResolver);
        }
        internal override void removeReferencesBeforeDelete(SFRefereceResolver i_ReferenceResolver)
        {
            updateReferencesAfterDeserialize(i_ReferenceResolver, false);

            if (ServiceAppointment != null)
            {
                if (ServiceResource != null && ServiceResource.Equals(ServiceAppointment.ScheduledSTM.ServiceResource))
                {
                    ServiceAppointment.ScheduledSTM = null;
                }

                ServiceAppointment.ServiceResources.Remove(this);
            }

            base.removeReferencesBeforeDelete(i_ReferenceResolver);
        }
    internal static T GetSingleObjectReference <T>(string i_ObjectId, JToken i_ObjectJson,
                                                   SFRefereceResolver i_ReferenceResolver) where T : sObject
    {
        T objectReference;

        if (!i_ReferenceResolver.TryGetObjectFromId(i_ObjectId, out objectReference))
        {
            if (i_ObjectJson != null && i_ObjectJson.Type == JTokenType.Object)
            {
                objectReference = i_ObjectJson.ToObject <T>(JsonSerializer.Create(SFJsonSerializerSettings));
                i_ReferenceResolver.AddReference(objectReference);
                objectReference.updateReferencesAfterDeserialize(i_ReferenceResolver);
            }
        }

        return(objectReference);
    }
        internal override void updateReferencesAfterDeserialize(SFRefereceResolver i_ReferenceResolver, bool i_ShouldAddToRelatedLists = true)
        {
            JToken objectJson = removeObjectJTokenFromAdditionalDictionary("WorkType");

            WorkType = DeserializationUtils.GetSingleObjectReference <WorkType>(WorkTypeId, objectJson, i_ReferenceResolver);

            objectJson       = removeObjectJTokenFromAdditionalDictionary("ServiceTerritory");
            ServiceTerritory = DeserializationUtils.GetSingleObjectReference <ServiceTerritory>(ServiceTerritoryId, objectJson, i_ReferenceResolver);

            objectJson = removeObjectJTokenFromAdditionalDictionary("ParentRecord");
            switch (ParentRecordType)
            {
            case "WorkOrder":
                ParentRecord = DeserializationUtils.GetSingleObjectReference <WorkOrder>(ParentRecordId, objectJson, i_ReferenceResolver);
                break;

            case "WorkOrderLineItem":
                ParentRecord = DeserializationUtils.GetSingleObjectReference <WorkOrderLineItem>(ParentRecordId, objectJson, i_ReferenceResolver);
                break;
            }

            DeserializationUtils.ProcessRelatedObjectsCollection(assignedResourcesCollection, i_ReferenceResolver);
            assignedResourcesCollection = null;

            Type myType = GetType();

            string propertyName = "Scheduling_Policy_Used__r";

            propertyName = DeserializationUtils.GetPropertyName(myType.GetProperty(propertyName), propertyName);
            objectJson   = removeObjectJTokenFromAdditionalDictionary(propertyName);
            Scheduling_Policy_Used__r = DeserializationUtils.GetSingleObjectReference <Scheduling_Policy__c>(Scheduling_Policy_Used__c, objectJson, i_ReferenceResolver);

            propertyName = "Related_Service__r";
            propertyName = DeserializationUtils.GetPropertyName(myType.GetProperty(propertyName), propertyName);

            objectJson         = removeObjectJTokenFromAdditionalDictionary(propertyName);
            Related_Service__r = DeserializationUtils.GetSingleObjectReference <ServiceAppointment>(Related_Service__c, objectJson, i_ReferenceResolver);

            if (IsScheduled)
            {
                ScheduledSTM = ServiceResources.First().ServiceResource.GetServiceTerritoryMemberByDateTime(SchedStartTime.Value);
            }

            base.updateReferencesAfterDeserialize(i_ReferenceResolver);
        }
Example #21
0
        internal override void updateReferencesAfterDeserialize(SFRefereceResolver i_ReferenceResolver, bool i_ShouldAddToRelatedLists = true)
        {
            JToken objectJson = removeObjectJTokenFromAdditionalDictionary("OperatingHours");

            OperatingHours = DeserializationUtils.GetSingleObjectReference <OperatingHours>(OperatingHoursId, objectJson, i_ReferenceResolver);

            objectJson      = removeObjectJTokenFromAdditionalDictionary("ServiceResource");
            ServiceResource = DeserializationUtils.GetSingleObjectReference <ServiceResource>(ServiceResourceId, objectJson, i_ReferenceResolver);
            if (ServiceResource != null && !string.IsNullOrEmpty(TerritoryType))
            {
                ServiceResource.ServiceTerritories.Add(this);
            }

            objectJson       = removeObjectJTokenFromAdditionalDictionary("ServiceTerritory");;
            ServiceTerritory = DeserializationUtils.GetSingleObjectReference <ServiceTerritory>(ServiceTerritoryId, objectJson, i_ReferenceResolver);

            base.updateReferencesAfterDeserialize(i_ReferenceResolver);
        }
        internal override void updateReferencesAfterDeserialize(SFRefereceResolver i_ReferenceResolver, bool i_ShouldAddToRelatedLists = true)
        {
            JToken objectJson = removeObjectJTokenFromAdditionalDictionary("ServiceAppointment");

            ServiceAppointment = DeserializationUtils.GetSingleObjectReference <ServiceAppointment>(ServiceAppointmentId, objectJson, i_ReferenceResolver);
            if (ServiceAppointment != null && i_ShouldAddToRelatedLists)
            {
                ServiceAppointment.ServiceResources.Add(this);
            }

            objectJson  = removeObjectJTokenFromAdditionalDictionary("ServiceCrew");
            ServiceCrew = DeserializationUtils.GetSingleObjectReference <ServiceCrew>(ServiceCrewId, objectJson, i_ReferenceResolver);

            objectJson      = removeObjectJTokenFromAdditionalDictionary("ServiceResource");
            ServiceResource = DeserializationUtils.GetSingleObjectReference <ServiceResource>(ServiceResourceId, objectJson, i_ReferenceResolver);

            base.updateReferencesAfterDeserialize(i_ReferenceResolver);
        }
Example #23
0
        internal override void updateReferencesAfterDeserialize(SFRefereceResolver i_ReferenceResolver, bool i_ShouldAddToRelatedLists = true)
        {
            Type myType = GetType();

            string propertyName = "Root_Service_Appointment__r";

            propertyName = DeserializationUtils.GetPropertyName(myType.GetProperty(propertyName), propertyName);
            JToken objectJson = removeObjectJTokenFromAdditionalDictionary(propertyName);

            Root_Service_Appointment__r = DeserializationUtils.GetSingleObjectReference <ServiceAppointment>(Root_Service_Appointment__c, objectJson, i_ReferenceResolver);


            propertyName             = "Service_Appointment_1__r";
            propertyName             = DeserializationUtils.GetPropertyName(myType.GetProperty(propertyName), propertyName);
            objectJson               = removeObjectJTokenFromAdditionalDictionary(propertyName);
            Service_Appointment_1__r = DeserializationUtils.GetSingleObjectReference <ServiceAppointment>(Service_Appointment_1__c, objectJson, i_ReferenceResolver);
            if (Service_Appointment_1__r != null)
            {
                if (Service_Appointment_1__r.Time_Dependencies__r == null)
                {
                    Service_Appointment_1__r.Time_Dependencies__r = new List <Time_Dependency__c>();
                }

                Service_Appointment_1__r.Time_Dependencies__r.Add(this);
            }

            propertyName             = "Service_Appointment_2__r";
            propertyName             = DeserializationUtils.GetPropertyName(myType.GetProperty(propertyName), propertyName);
            objectJson               = removeObjectJTokenFromAdditionalDictionary(propertyName);
            Service_Appointment_2__r = DeserializationUtils.GetSingleObjectReference <ServiceAppointment>(Service_Appointment_2__c, objectJson, i_ReferenceResolver);
//            if (Service_Appointment_2__r != null)
//            {
//                if (Service_Appointment_2__r.Time_Dependencies__r == null)
//                {
//                    Service_Appointment_2__r.Time_Dependencies__r = new List<Time_Dependency__c>();
//                }
//
//                Service_Appointment_2__r.Time_Dependencies__r.Add(this);
//            }

            base.updateReferencesAfterDeserialize(i_ReferenceResolver);
        }
Example #24
0
        internal override void updateReferencesAfterDeserialize(SFRefereceResolver i_ReferenceResolver, bool i_ShouldAddToRelatedLists = true)
        {
            JToken  objectJson = removeObjectJTokenFromAdditionalDictionary("RelatedRecord");
            sObject resourcePreferenceParent = DeserializationUtils.GetSingleObjectReference <sObject>(RelatedRecordId, objectJson, i_ReferenceResolver);

            switch (resourcePreferenceParent.attributes.type)
            {
            case "WorkOrder":
                RelatedRecord = (WorkOrder)resourcePreferenceParent;
                break;
            }
            if (RelatedRecord != null)
            {
                RelatedRecord.ResourcePreferences.Add(this);
            }

            objectJson      = removeObjectJTokenFromAdditionalDictionary("ServiceResource");
            ServiceResource = DeserializationUtils.GetSingleObjectReference <ServiceResource>(ServiceResourceId, objectJson, i_ReferenceResolver);

            base.updateReferencesAfterDeserialize(i_ReferenceResolver);
        }
Example #25
0
        internal override void updateReferencesAfterDeserialize(SFRefereceResolver i_ReferenceResolver, bool i_ShouldAddToRelatedLists = true)
        {
            Type myType = GetType();

            string propertyName = "Scheduling_Policy__r";

            propertyName = DeserializationUtils.GetPropertyName(myType.GetProperty(propertyName), propertyName);
            JToken objectJson = removeObjectJTokenFromAdditionalDictionary(propertyName);

            Scheduling_Policy__r = DeserializationUtils.GetSingleObjectReference <Scheduling_Policy__c>(Scheduling_Policy__c, objectJson, i_ReferenceResolver);
            if (Scheduling_Policy__r != null)
            {
                Scheduling_Policy__r.Objectives.Add(this);
            }

            propertyName    = "Service_Goal__r";
            propertyName    = DeserializationUtils.GetPropertyName(myType.GetProperty(propertyName), propertyName);
            objectJson      = removeObjectJTokenFromAdditionalDictionary(propertyName);
            Service_Goal__r = DeserializationUtils.GetSingleObjectReference <Service_Goal__c>(Service_Goal__c, objectJson, i_ReferenceResolver);

            base.updateReferencesAfterDeserialize(i_ReferenceResolver);
        }
        private void populateServiceParentsList(SFRefereceResolver i_RefereceResolver)
        {
            if (ServicesParents == null)
            {
                ServicesParents = new Dictionary <string, IServiceAppoinmentParent>();
            }

            if (parents != null)
            {
                JsonSerializer serializer = JsonSerializer.Create(DeserializationUtils.SFJsonSerializerSettings);

                foreach (JObject serviceParent in parents)
                {
                    JToken attributeType = serviceParent.SelectToken("attributes.type");
                    if (attributeType != null)
                    {
                        string objectType = attributeType.ToString();
                        switch (objectType)
                        {
                        case "WorkOrder":
                            WorkOrder workOrder = serviceParent.ToObject <WorkOrder>(serializer);
                            i_RefereceResolver.AddReference(workOrder);
                            ServicesParents.Add(workOrder.Id, workOrder);
                            break;

                        case "WorkOrderLineItem":
                            WorkOrderLineItem workOrderLineItem = serviceParent.ToObject <WorkOrderLineItem>(serializer);
                            i_RefereceResolver.AddReference(workOrderLineItem);
                            ServicesParents.Add(workOrderLineItem.Id, workOrderLineItem);
                            break;
                        }
                    }
                }
                parents.Clear();
                parents = null;
            }
        }
 internal static T GetSingleObjectReference <T>(string i_ObjectId, SFRefereceResolver i_ReferenceResolver)
     where T : sObject
 {
     return(GetSingleObjectReference <T>(i_ObjectId, null, i_ReferenceResolver));
 }
Example #28
0
 internal virtual void removeReferencesBeforeDelete(SFRefereceResolver i_ReferenceResolver)
 {
 }