/// <summary> /// Perform update /// </summary> public override Act UpdateInternal(DataContext context, Act data) { switch (data.ClassConceptKey.ToString().ToUpper()) { case ActClassKeyStrings.ControlAct: return(new ControlActPersistenceService().UpdateInternal(context, data.Convert <ControlAct>())); case ActClassKeyStrings.SubstanceAdministration: return(new SubstanceAdministrationPersistenceService().UpdateInternal(context, data.Convert <SubstanceAdministration>())); case ActClassKeyStrings.Observation: switch (data.GetType().Name) { case "TextObservation": return(new TextObservationPersistenceService().UpdateInternal(context, data.Convert <TextObservation>())); case "CodedObservation": return(new CodedObservationPersistenceService().UpdateInternal(context, data.Convert <CodedObservation>())); case "QuantityObservation": return(new QuantityObservationPersistenceService().UpdateInternal(context, data.Convert <QuantityObservation>())); default: return(this.UpdateCoreProperties(context, data)); } case ActClassKeyStrings.Encounter: return(new EncounterPersistenceService().UpdateInternal(context, data.Convert <PatientEncounter>())); case ActClassKeyStrings.Condition: default: return(this.UpdateCoreProperties(context, data)); } }