/// <summary> /// Cache convert an act version /// </summary> protected override Act CacheConvert(DbIdentified dataInstance, LocalDataContext context) { if (dataInstance == null) { return(null); } DbAct dbAct = dataInstance as DbAct; Act retVal = null; IDataCachingService cache = ApplicationContext.Current.GetService <IDataCachingService>(); if (dbAct != null) { switch (new Guid(dbAct.ClassConceptUuid).ToString().ToUpper()) { case ControlAct: retVal = cache?.GetCacheItem <ControlAct>(dbAct.Key); break; case SubstanceAdministration: retVal = cache?.GetCacheItem <SubstanceAdministration>(dbAct.Key); break; case Observation: var dbObs = context.Connection.Table <DbObservation>().Where(o => o.Uuid == dbAct.Uuid).FirstOrDefault(); if (dbObs != null) { switch (dbObs.ValueType) { case "ST": retVal = cache?.GetCacheItem <TextObservation>(dbAct.Key); break; case "CD": retVal = cache?.GetCacheItem <CodedObservation>(dbAct.Key); break; case "PQ": retVal = cache?.GetCacheItem <QuantityObservation>(dbAct.Key); break; } } break; case Encounter: retVal = cache?.GetCacheItem <PatientEncounter>(dbAct.Key); break; case Condition: default: retVal = cache?.GetCacheItem <Act>(dbAct.Key); break; } } else if (dataInstance is DbControlAct) { retVal = cache?.GetCacheItem <ControlAct>(dataInstance.Key); } else if (dataInstance is DbSubstanceAdministration) { retVal = cache?.GetCacheItem <SubstanceAdministration>(dataInstance.Key); } else if (dataInstance is DbTextObservation) { retVal = cache?.GetCacheItem <TextObservation>(dataInstance.Key); } else if (dataInstance is DbCodedObservation) { retVal = cache?.GetCacheItem <CodedObservation>(dataInstance.Key); } else if (dataInstance is DbQuantityObservation) { retVal = cache?.GetCacheItem <QuantityObservation>(dataInstance.Key); } else if (dataInstance is DbPatientEncounter) { retVal = cache?.GetCacheItem <PatientEncounter>(dataInstance.Key); } // Return cache value if (retVal != null) { if (retVal.LoadState < context.DelayLoadMode) { retVal.LoadAssociations(context, // Exclude nameof(OpenIZ.Core.Model.Acts.Act.Extensions), nameof(OpenIZ.Core.Model.Acts.Act.Tags), nameof(OpenIZ.Core.Model.Acts.Act.Identifiers), nameof(OpenIZ.Core.Model.Acts.Act.Notes), nameof(OpenIZ.Core.Model.Acts.Act.Policies) ); } return(retVal); } else { return(base.CacheConvert(dataInstance, context)); } }
/// <summary> /// Perform the cache convert /// </summary> internal Entity DoCacheConvert(DbIdentified dataInstance, LocalDataContext context) { if (dataInstance == null) { return(null); } // Alright first, which type am I mapping to? var dbEntity = dataInstance as DbEntity; Entity retVal = null; IDataCachingService cache = ApplicationContext.Current.GetService <IDataCachingService>(); if (dbEntity != null) { switch (new Guid(dbEntity.ClassConceptUuid).ToString().ToUpper()) { case Device: retVal = cache?.GetCacheItem <DeviceEntity>(dbEntity.Key); break; case NonLivingSubject: retVal = cache?.GetCacheItem <ApplicationEntity>(dbEntity.Key); break; case Person: retVal = cache?.GetCacheItem <UserEntity>(dbEntity.Key); if (retVal == null) { retVal = cache?.GetCacheItem <Person>(dbEntity.Key); } break; case Patient: retVal = cache?.GetCacheItem <Patient>(dbEntity.Key); break; case Provider: retVal = cache?.GetCacheItem <Provider>(dbEntity.Key); break; case Place: case CityOrTown: case Country: case CountyOrParish: case State: case ServiceDeliveryLocation: retVal = cache?.GetCacheItem <Place>(dbEntity.Key); break; case Organization: retVal = cache?.GetCacheItem <Organization>(dbEntity.Key); break; case Material: retVal = cache?.GetCacheItem <Material>(dbEntity.Key); break; case ManufacturedMaterial: retVal = cache?.GetCacheItem <ManufacturedMaterial>(dbEntity.Key); break; default: retVal = cache?.GetCacheItem <Entity>(dbEntity.Key); break; } } else if (dataInstance is DbDeviceEntity) { retVal = cache?.GetCacheItem <DeviceEntity>(dataInstance.Key); } else if (dataInstance is DbApplicationEntity) { retVal = cache?.GetCacheItem <ApplicationEntity>(dataInstance.Key); } else if (dataInstance is DbPerson) { retVal = cache?.GetCacheItem <UserEntity>(dataInstance.Key); } else if (dataInstance is DbPatient) { retVal = cache?.GetCacheItem <Patient>(dataInstance.Key); } else if (dataInstance is DbProvider) { retVal = cache?.GetCacheItem <Provider>(dataInstance.Key); } else if (dataInstance is DbPlace) { retVal = cache?.GetCacheItem <Place>(dataInstance.Key); } else if (dataInstance is DbOrganization) { retVal = cache?.GetCacheItem <Organization>(dataInstance.Key); } else if (dataInstance is DbMaterial) { retVal = cache?.GetCacheItem <Material>(dataInstance.Key); } else if (dataInstance is DbManufacturedMaterial) { retVal = cache?.GetCacheItem <ManufacturedMaterial>(dataInstance.Key); } // Return cache value if (retVal != null) { if (retVal.LoadState < context.DelayLoadMode) { retVal.LoadAssociations(context, // Exclude nameof(OpenIZ.Core.Model.Entities.Entity.Extensions), nameof(OpenIZ.Core.Model.Entities.Entity.Notes), nameof(OpenIZ.Core.Model.Entities.Entity.Participations), nameof(OpenIZ.Core.Model.Entities.Entity.Telecoms), nameof(OpenIZ.Core.Model.Entities.UserEntity.SecurityUser) ); } return(retVal); } else { return(base.CacheConvert(dataInstance, context)); } }
/// <summary> /// Do cache convert /// </summary> protected override TModel CacheConvert(DbIdentified o, LocalDataContext context) { return((TModel)this.m_entityPersister.DoCacheConvert(o, context)); }
/// <summary> /// Conversion based on type /// </summary> protected override Entity CacheConvert(DbIdentified dataInstance, LocalDataContext context) { return(this.DoCacheConvert(dataInstance, context)); }