/// <summary> /// Override model instance /// </summary> public override object FromModelInstance(EntityAddress modelInstance, SQLiteDataContext context) { foreach (var itm in modelInstance.Component) { itm.Value = itm.Value.Trim(); } modelInstance.Key = modelInstance.Key ?? Guid.NewGuid(); return(new DbEntityAddress() { Uuid = modelInstance.Key?.ToByteArray(), SourceUuid = modelInstance.SourceEntityKey?.ToByteArray(), UseConceptUuid = modelInstance.AddressUseKey?.ToByteArray() }); }
/// <summary> /// From model instance /// </summary> public override object FromModelInstance(Person modelInstance, SQLiteDataContext context) { /*var dbPerson = base.FromModelInstance(modelInstance, context) as DbPerson; * * if (modelInstance.DateOfBirthPrecision.HasValue && PrecisionMap.ContainsKey(modelInstance.DateOfBirthPrecision.Value)) * dbPerson.DateOfBirthPrecision = PrecisionMap[modelInstance.DateOfBirthPrecision.Value]; */ modelInstance.Key = modelInstance.Key ?? Guid.NewGuid(); return(new DbPerson() { DateOfBirth = modelInstance.DateOfBirth, DateOfBirthPrecision = modelInstance.DateOfBirthPrecision.HasValue ? PrecisionMap[modelInstance.DateOfBirthPrecision.Value] : null, Uuid = modelInstance.Key?.ToByteArray(), OccupationUuid = modelInstance.OccupationKey?.ToByteArray() }); }
/// <summary> /// Insert the relationship /// </summary> protected override ActParticipation InsertInternal(SQLiteDataContext context, ActParticipation data) { // Ensure we haven't already persisted this data.PlayerEntityKey = data.PlayerEntity?.Key ?? data.PlayerEntityKey; if (data.ParticipationRole != null) { data.ParticipationRole = data.ParticipationRole.EnsureExists(context, false); } data.ParticipationRoleKey = data.ParticipationRole?.Key ?? data.ParticipationRoleKey; data.ActKey = data.Act?.Key ?? data.ActKey; byte[] target = data.PlayerEntityKey.Value.ToByteArray(), source = data.SourceEntityKey.Value.ToByteArray(), typeKey = data.ParticipationRoleKey.Value.ToByteArray(); //SqlStatement sql = new SqlStatement<DbActParticipation>().SelectFrom() // .Where<DbActParticipation>(o => o.ActUuid == source ) // .Limit(1).Build(); //IEnumerable<DbActParticipation> dbrelationships = context.TryGetData($"EX:{sql.ToString()}") as IEnumerable<DbActParticipation>; //if (dbrelationships == null) { // dbrelationships = context.Connection.Query<DbActParticipation>(sql.SQL, sql.Arguments.ToArray()).ToList(); // context.AddData($"EX{sql.ToString()}", dbrelationships); //} //var existing = dbrelationships.FirstOrDefault( // o => o.ParticipationRoleUuid == typeKey && // o.EntityUuid == target); //if (existing == null) //{ return(base.InsertInternal(context, data)); // (dbrelationships as List<DbActParticipation>).Add(new DbActParticipation() // { // Uuid = retVal.Key.Value.ToByteArray(), // ParticipationRoleUuid = typeKey, // ActUuid = source, // EntityUuid = target // }); // return retVal; //} //else //{ // data.Key = new Guid(existing.Uuid); // return data; //} }
/// <summary> /// Update the roles to security user /// </summary> protected override SecurityApplication UpdateInternal(SQLiteDataContext context, SecurityApplication data) { var retVal = base.UpdateInternal(context, data); var entityUuid = retVal.Key.Value.ToByteArray(); // Roles //if (retVal.Policies != null) // base.UpdateAssociatedItems<SecurityPolicyInstance, SecurityApplication>( // context.Table<DbSecurityApplicationPolicy>().Where(o => o.ApplicationId == entityUuid).ToList().Select(o => m_mapper.MapDomainInstance<DbSecurityApplicationPolicy, SecurityPolicyInstance>(o)).ToList(), // retVal.Policies, // retVal.Key, // context); return(retVal); }
/// <summary> /// Updates the specified observation /// </summary> protected override TObservation UpdateInternal(SQLiteDataContext context, TObservation data) { if (data.InterpretationConcept != null) { data.InterpretationConcept = data.InterpretationConcept?.EnsureExists(context); } data.InterpretationConceptKey = data.InterpretationConcept?.Key ?? data.InterpretationConceptKey; var updated = base.UpdateInternal(context, data); // Not pure observation var dbobservation = context.Connection.Get <DbObservation>(data.Key?.ToByteArray()); dbobservation.InterpretationConceptUuid = data.InterpretationConceptKey?.ToByteArray(); context.Connection.Update(dbobservation); return(updated); }
/// <summary> /// Updates a reference term. /// </summary> /// <param name="context">Context.</param> /// <param name="data">Data.</param> /// <param name="principal">The principal.</param> /// <returns>Returns the updated reference term.</returns> protected override ReferenceTerm UpdateInternal(SQLiteDataContext context, ReferenceTerm data) { var referenceTerm = base.UpdateInternal(context, data); var uuid = referenceTerm.Key.Value.ToByteArray(); if (referenceTerm.DisplayNames != null) { base.UpdateAssociatedItems <ReferenceTermName, ReferenceTerm>( context.Connection.Table <DbReferenceTermName>().Where(o => o.ReferenceTermUuid == uuid).ToList().Select(o => m_mapper.MapDomainInstance <DbReferenceTermName, ReferenceTermName>(o)).ToList(), referenceTerm.DisplayNames, data.Key, context); } return(referenceTerm); }
/// <summary> /// Update the specified person /// </summary> protected override Patient UpdateInternal(SQLiteDataContext context, Patient data) { // Ensure exists if (data.GenderConcept != null) { data.GenderConcept = data.GenderConcept?.EnsureExists(context); } data.GenderConceptKey = data.GenderConcept?.Key ?? data.GenderConceptKey; if (data.VipStatus != null) { data.VipStatus = data.VipStatus?.EnsureExists(context, false); } data.VipStatusKey = data.VipStatus?.Key ?? data.VipStatusKey; this.m_personPersister.Update(context, data); return(base.UpdateInternal(context, data)); }
/// <summary> /// Insert the specified person into the database /// </summary> protected override Patient InsertInternal(SQLiteDataContext context, Patient data) { if (data.GenderConcept != null) { data.GenderConcept = data.GenderConcept?.EnsureExists(context); } data.GenderConceptKey = data.GenderConcept?.Key ?? data.GenderConceptKey; if (data.VipStatus != null) { data.VipStatus = data.VipStatus?.EnsureExists(context, false); } data.VipStatusKey = data.VipStatus?.Key ?? data.VipStatusKey; var inserted = this.m_personPersister.Insert(context, data); return(base.InsertInternal(context, data)); }
/// <summary> /// To model instance /// </summary> public override EntityAddressComponent ToModelInstance(object dataInstance, SQLiteDataContext context) { if (dataInstance == null) { return(null); } var addrComp = (dataInstance as DbEntityAddressComponent.QueryResult)?.GetInstanceOf <DbEntityAddressComponent>() ?? dataInstance as DbEntityAddressComponent; var addrValue = (dataInstance as DbEntityAddressComponent.QueryResult)?.GetInstanceOf <DbAddressValue>() ?? context.Connection.Table <DbAddressValue>().Where(o => o.Uuid == addrComp.ValueUuid).FirstOrDefault(); return(new EntityAddressComponent() { ComponentTypeKey = new Guid(addrComp.ComponentTypeUuid), Value = addrValue.Value, Key = addrComp.Key, SourceEntityKey = new Guid(addrComp.AddressUuid) }); }
/// <summary> /// Load relationship mnemonics /// </summary> public string GetRelationshipMnemonic(SQLiteDataContext context, Guid id) { if (this.m_relationshipMnemonicDictionary.Count == 0) { lock (this.m_relationshipMnemonicDictionary) if (this.m_relationshipMnemonicDictionary.Count == 0) { foreach (var itm in context.Connection.Query <DbConcept>("select concept.uuid, mnemonic from concept_concept_set inner join concept on (concept.uuid = concept_concept_set.concept_uuid) where concept_concept_set.concept_set_uuid = ?", ConceptSetKeys.EntityRelationshipType.ToByteArray())) { this.m_relationshipMnemonicDictionary.Add(itm.Key, itm.Mnemonic); } } } String retVal = null; this.m_relationshipMnemonicDictionary.TryGetValue(id, out retVal); return(retVal); }
/// <summary> /// Load to a model instance /// </summary> public override Place ToModelInstance(object dataInstance, SQLiteDataContext context) { var iddat = dataInstance as DbVersionedData; var place = dataInstance as DbPlace ?? dataInstance.GetInstanceOf <DbPlace>() ?? context.Connection.Table <DbPlace>().Where(o => o.Uuid == iddat.Uuid).FirstOrDefault(); var dbe = dataInstance.GetInstanceOf <DbEntity>() ?? dataInstance as DbEntity ?? context.Connection.Table <DbEntity>().Where(o => o.Uuid == place.Uuid).First(); var retVal = m_entityPersister.ToModelInstance <Place>(dbe, context); if (place != null) { retVal.IsMobile = place.IsMobile; retVal.Lat = place.Lat; retVal.Lng = place.Lng; } //retVal.LoadAssociations(context); return(retVal); }
/// <summary> /// Update the specified data /// </summary> protected override AssigningAuthority UpdateInternal(SQLiteDataContext context, AssigningAuthority data) { var retVal = base.UpdateInternal(context, data); var ruuid = retVal.Key.Value.ToByteArray(); // Scopes? if (retVal.AuthorityScopeXml != null) { foreach (var itm in context.Connection.Table <DbAuthorityScope>().Where(o => o.Uuid == ruuid)) { context.Connection.Delete(itm); } context.Connection.InsertAll(retVal.AuthorityScopeXml.Select(o => new DbAuthorityScope() { Key = Guid.NewGuid(), ScopeConceptUuid = o.ToByteArray(), AssigningAuthorityUuid = retVal.Key.Value.ToByteArray() })); } return(retVal); }
/// <summary> /// Represent as a model instance /// </summary> public override EntityName ToModelInstance(object dataInstance, SQLiteDataContext context) { var dbEntName = dataInstance as DbEntityName; var compPersister = new EntityNameComponentPersistenceService(); return(new EntityName() { Key = new Guid(dbEntName.Uuid), NameUseKey = dbEntName.UseConceptUuid == null ? null : (Guid?)new Guid(dbEntName.UseConceptUuid), SourceEntityKey = new Guid(dbEntName.SourceUuid), NameUse = dbEntName.UseConceptUuid == null ? null : new Concept() { Key = new Guid(dbEntName.UseConceptUuid), Mnemonic = this.m_nameUseMap[new Guid(dbEntName.UseConceptUuid)] }, LoadState = SanteDB.Core.Model.LoadState.FullLoad, Component = compPersister.GetFromSource(context, new Guid(dbEntName.Uuid), null).OfType <EntityNameComponent>().ToList() }); }
/// <summary> /// Convert entity into a dbentity /// </summary> public override object FromModelInstance(Entity modelInstance, SQLiteDataContext context) { modelInstance.Key = modelInstance.Key ?? Guid.NewGuid(); return(new DbEntity() { ClassConceptUuid = modelInstance.ClassConceptKey?.ToByteArray(), CreatedByUuid = modelInstance.CreatedByKey?.ToByteArray(), CreationTime = modelInstance.CreationTime, DeterminerConceptUuid = modelInstance.DeterminerConceptKey?.ToByteArray(), ObsoletedByUuid = modelInstance.ObsoletedByKey?.ToByteArray(), ObsoletionTime = modelInstance.ObsoletionTime, PreviousVersionUuid = modelInstance.PreviousVersionKey?.ToByteArray(), StatusConceptUuid = modelInstance.StatusConceptKey?.ToByteArray(), TemplateUuid = modelInstance.TemplateKey?.ToByteArray(), TypeConceptUuid = modelInstance.TypeConceptKey?.ToByteArray(), Uuid = modelInstance.Key?.ToByteArray(), VersionSequenceId = (int)modelInstance.VersionSequence.GetValueOrDefault(), VersionUuid = modelInstance.VersionKey?.ToByteArray() }); }
/// <summary> /// To model instance /// </summary> public override UserEntity ToModelInstance(object dataInstance, SQLiteDataContext context) { var iddat = dataInstance as DbVersionedData; var userEntity = dataInstance as DbUserEntity ?? dataInstance.GetInstanceOf <DbUserEntity>() ?? context.Connection.Table <DbUserEntity>().Where(o => o.Uuid == iddat.Uuid).First(); var dbe = dataInstance.GetInstanceOf <DbEntity>() ?? dataInstance as DbEntity ?? context.Connection.Table <DbEntity>().Where(o => o.Uuid == userEntity.Uuid).First(); var dbp = context.Connection.Table <DbPerson>().Where(o => o.Uuid == userEntity.Uuid).First(); var retVal = m_entityPersister.ToModelInstance <UserEntity>(dbe, context); retVal.SecurityUserKey = new Guid(userEntity.SecurityUserUuid); retVal.DateOfBirth = dbp.DateOfBirth; // Reverse lookup if (!String.IsNullOrEmpty(dbp.DateOfBirthPrecision)) { retVal.DateOfBirthPrecision = PersonPersistenceService.PrecisionMap.Where(o => o.Value == dbp.DateOfBirthPrecision).Select(o => o.Key).First(); } // retVal.LoadAssociations(context); return(retVal); }
/// <summary> /// To model instance /// </summary> public override EntityNameComponent ToModelInstance(object dataInstance, SQLiteDataContext context) { if (dataInstance == null) { return(null); } var entName = (dataInstance as DbEntityNameComponent.QueryResult)?.GetInstanceOf <DbEntityNameComponent>() ?? dataInstance as DbEntityNameComponent; var nameValue = (dataInstance as DbEntityNameComponent.QueryResult)?.GetInstanceOf <DbPhoneticValue>() ?? context.Connection.Table <DbPhoneticValue>().Where(o => o.Uuid == entName.ValueUuid).FirstOrDefault(); return(new EntityNameComponent() { ComponentTypeKey = new Guid(entName.ComponentTypeUuid ?? Guid.Empty.ToByteArray()), Value = nameValue.Value, Key = entName.Key, //PhoneticAlgorithmKey = new Guid(nameValue.PhoneticAlgorithmUuid ?? Guid.Empty.ToByteArray()), //PhoneticCode = nameValue.PhoneticCode, SourceEntityKey = new Guid(entName.NameUuid) }); }
/// <summary> /// To model instance /// </summary> public override Concept ToModelInstance(object dataInstance, SQLiteDataContext context) { var modelInstance = m_mapper.MapDomainInstance <DbConcept, Concept>(dataInstance as DbConcept); // Set the concepts var dbInstance = dataInstance as DbConcept; //modelInstance.ConceptSets = context.Connection.Query<DbConceptSet>("SELECT concept_set.* FROM concept_concept_set INNER JOIN concept_set ON (concept_concept_set.concept_set_uuid = concept_set.uuid) WHERE concept_concept_set.concept_uuid = ?", dbInstance.Uuid).Select( // o => m_mapper.MapDomainInstance<DbConceptSet, ConceptSet>(o) //).ToList(); // Set the concept names modelInstance.ConceptNames = context.Connection.Table <DbConceptName>().Where(o => o.ConceptUuid == dbInstance.Uuid).Select(o => m_mapper.MapDomainInstance <DbConceptName, ConceptName>(o)).ToList(); //modelInstance.StatusConcept = m_mapper.MapDomainInstance<DbConcept, Concept>(context.Table<DbConcept>().Where(o => o.Uuid == dbInstance.StatusUuid).FirstOrDefault()); //modelInstance.Class = m_mapper.MapDomainInstance<DbConceptClass, ConceptClass>(context.Table<DbConceptClass>().Where(o => o.Uuid == dbInstance.ClassUuid).FirstOrDefault()); //modelInstance.LoadAssociations(context); modelInstance.LoadState = SanteDB.Core.Model.LoadState.FullLoad; return(modelInstance); }
/// <summary> /// Model instance /// </summary> public override Provider ToModelInstance(object dataInstance, SQLiteDataContext context) { var iddat = dataInstance as DbVersionedData; var provider = dataInstance as DbProvider ?? dataInstance.GetInstanceOf <DbProvider>() ?? context.Connection.Table <DbProvider>().Where(o => o.Uuid == iddat.Uuid).First(); var dbe = dataInstance.GetInstanceOf <DbEntity>() ?? dataInstance as DbEntity ?? context.Connection.Table <DbEntity>().Where(o => o.Uuid == provider.Uuid).First(); var dbp = context.Connection.Table <DbPerson>().Where(o => o.Uuid == provider.Uuid).First(); var retVal = m_entityPersister.ToModelInstance <Provider>(dbe, context); retVal.DateOfBirth = dbp.DateOfBirth; // Reverse lookup // Reverse lookup if (!String.IsNullOrEmpty(dbp.DateOfBirthPrecision)) { retVal.DateOfBirthPrecision = PersonPersistenceService.PrecisionMap.Where(o => o.Value == dbp.DateOfBirthPrecision).Select(o => o.Key).First(); } retVal.ProviderSpecialtyKey = provider.Specialty == null ? null : (Guid?)new Guid(provider.Specialty); //retVal.LoadAssociations(context); return(retVal); }
/// <summary> /// Insert the specified concept /// </summary> protected override ConceptSet InsertInternal(SQLiteDataContext context, ConceptSet data) { // Concept set insertion var retVal = base.InsertInternal(context, data); // Concept members (nb: this is only a UUID if from the wire) if (data.ConceptsXml != null) { foreach (var r in data.ConceptsXml) { context.Connection.Insert(new DbConceptSetConceptAssociation() { Uuid = Guid.NewGuid().ToByteArray(), ConceptSetUuid = retVal.Key.Value.ToByteArray(), ConceptUuid = r.ToByteArray() }); } } return(retVal); }
/// <summary> /// Model instance /// </summary> public override Person ToModelInstance(object dataInstance, SQLiteDataContext context) { var iddat = dataInstance as DbIdentified; var person = iddat as DbPerson ?? iddat.GetInstanceOf <DbPerson>() ?? context.Connection.Table <DbPerson>().Where(o => o.Uuid == iddat.Uuid).First(); var dbe = iddat.GetInstanceOf <DbEntity>() ?? context.Connection.Table <DbEntity>().Where(o => o.Uuid == person.Uuid).First(); var retVal = m_entityPersister.ToModelInstance <Person>(dbe, context); retVal.DateOfBirth = person.DateOfBirth.HasValue ? (DateTime?)person.DateOfBirth.Value.ToLocalTime() : null; // Reverse lookup if (!String.IsNullOrEmpty(person.DateOfBirthPrecision)) { retVal.DateOfBirthPrecision = PrecisionMap.Where(o => o.Value == person.DateOfBirthPrecision).Select(o => o.Key).First(); } retVal.OccupationKey = person.OccupationUuid?.ToGuid(); //etVal.LoadAssociations(context); return(retVal); }
/// <summary> /// Insert the specified object /// </summary> protected override SecurityDevice InsertInternal(SQLiteDataContext context, SecurityDevice data) { var retVal = base.InsertInternal(context, data); // Roles if (retVal.Policies != null) { foreach (var itm in retVal.Policies) { context.Connection.Insert(new DbSecurityDevicePolicy() { Key = Guid.NewGuid(), DeviceId = retVal.Key.Value.ToByteArray(), GrantType = (int)itm.GrantType, PolicyId = itm.PolicyKey.Value.ToByteArray() }); } } return(retVal); }
/// <summary> /// Insert the specified object /// </summary> protected override SecurityUser InsertInternal(SQLiteDataContext context, SecurityUser data) { var retVal = base.InsertInternal(context, data); // Roles if (retVal.Roles != null) { foreach (var r in retVal.Roles) { r.EnsureExists(context); context.Connection.Insert(new DbSecurityUserRole() { Uuid = Guid.NewGuid().ToByteArray(), UserUuid = retVal.Key.Value.ToByteArray(), RoleUuid = r.Key.Value.ToByteArray() }); } } return(retVal); }
/// <summary> /// Update the person entity /// </summary> protected override Person UpdateInternal(SQLiteDataContext context, Person data) { if (data.Occupation != null) { data.Occupation = data.Occupation?.EnsureExists(context, false); } data.OccupationKey = data.Occupation?.Key ?? data.OccupationKey; var retVal = base.UpdateInternal(context, data); var sourceKey = retVal.Key.Value.ToByteArray(); // Language communication if (data.LanguageCommunication != null) { base.UpdateAssociatedItems <PersonLanguageCommunication, Entity>( context.Connection.Table <DbPersonLanguageCommunication>().Where(o => o.SourceUuid == sourceKey).ToList().Select(o => m_mapper.MapDomainInstance <DbPersonLanguageCommunication, PersonLanguageCommunication>(o)).ToList(), data.LanguageCommunication, retVal.Key, context); } return(retVal); }
/// <summary> /// Insert the specified object /// </summary> protected override EntityName InsertInternal(SQLiteDataContext context, EntityName data) { // Ensure exists if (data.NameUse != null) { data.NameUse = data.NameUse?.EnsureExists(context); } data.NameUseKey = data.NameUse?.Key ?? data.NameUseKey; var retVal = base.InsertInternal(context, data); // Data component if (data.Component != null) { base.UpdateAssociatedItems <EntityNameComponent, EntityName>( new List <EntityNameComponent>(), data.Component, data.Key, context); } return(retVal); }
/// <summary> /// Model instance /// </summary> public override Patient ToModelInstance(object dataInstance, SQLiteDataContext context) { var iddat = dataInstance as DbVersionedData; var patient = dataInstance as DbPatient ?? dataInstance.GetInstanceOf <DbPatient>() ?? context.Connection.Table <DbPatient>().Where(o => o.Uuid == iddat.Uuid).First(); var dbe = dataInstance.GetInstanceOf <DbEntity>() ?? dataInstance as DbEntity ?? context.Connection.Table <DbEntity>().Where(o => o.Uuid == patient.Uuid).First(); var dbp = dataInstance.GetInstanceOf <DbPerson>() ?? context.Connection.Table <DbPerson>().Where(o => o.Uuid == patient.Uuid).First(); var retVal = m_entityPersister.ToModelInstance <Patient>(dbe, context); retVal.DateOfBirth = dbp.DateOfBirth.HasValue ? (DateTime?)dbp.DateOfBirth.Value.ToLocalTime() : null; // Reverse lookup if (!String.IsNullOrEmpty(dbp.DateOfBirthPrecision)) { retVal.DateOfBirthPrecision = PersonPersistenceService.PrecisionMap.Where(o => o.Value == dbp.DateOfBirthPrecision).Select(o => o.Key).First(); } else { retVal.DateOfBirthPrecision = SanteDB.Core.Model.DataTypes.DatePrecision.Day; } retVal.DeceasedDate = patient.DeceasedDate.HasValue ? (DateTime?)patient.DeceasedDate.Value.ToLocalTime() : null; // Reverse lookup if (!String.IsNullOrEmpty(patient.DeceasedDatePrecision)) { retVal.DeceasedDatePrecision = PersonPersistenceService.PrecisionMap.Where(o => o.Value == patient.DeceasedDatePrecision).Select(o => o.Key).First(); } retVal.MultipleBirthOrder = patient.MultipleBirthOrder; retVal.GenderConceptKey = new Guid(patient.GenderConceptUuid); retVal.EducationLevelKey = patient.EducationLevelUuid?.ToGuid(); retVal.EthnicGroupCodeKey = patient.EthnicGroupCodeUuid?.ToGuid(); retVal.LivingArrangementKey = patient.LivingArrangementUuid?.ToGuid(); retVal.MaritalStatusKey = patient.MaritalStatusUuid?.ToGuid(); retVal.VipStatusKey = patient.VipStatusUuid?.ToGuid(); retVal.OccupationKey = dbp.OccupationUuid?.ToGuid(); //retVal.LoadAssociations(context); return(retVal); }
/// <summary> /// Creates the specified model instance /// </summary> internal TModel ToModelInstance <TModel>(object rawInstance, SQLiteDataContext context) where TModel : Material, new() { var iddat = rawInstance as DbIdentified; var dataInstance = rawInstance as DbMaterial ?? rawInstance.GetInstanceOf <DbMaterial>() ?? context.Connection.Table <DbMaterial>().Where(o => o.Uuid == iddat.Uuid).First(); var dbe = rawInstance.GetInstanceOf <DbEntity>() ?? rawInstance as DbEntity ?? context.Connection.Table <DbEntity>().Where(o => o.Uuid == dataInstance.Uuid).First(); var retVal = this.m_entityPersister.ToModelInstance <TModel>(dbe, context); retVal.ExpiryDate = dataInstance.ExpiryDate; retVal.IsAdministrative = dataInstance.IsAdministrative; retVal.Quantity = dataInstance.Quantity; if (dataInstance.QuantityConceptUuid != null) { retVal.QuantityConceptKey = new Guid(dataInstance.QuantityConceptUuid); } if (dataInstance.FormConceptUuid != null) { retVal.FormConceptKey = new Guid(dataInstance.FormConceptUuid); } // retVal.LoadAssociations(context); return(retVal); }
/// <summary> /// Update the specified data elements /// </summary> protected override ConceptSet UpdateInternal(SQLiteDataContext context, ConceptSet data) { var retVal = base.UpdateInternal(context, data); var keyuuid = retVal.Key.Value.ToByteArray(); // Wipe and re-associate if (data.ConceptsXml != null) { context.Connection.Table <DbConceptSetConceptAssociation>().Delete(o => o.ConceptSetUuid == keyuuid); foreach (var r in data.ConceptsXml) { context.Connection.Insert(new DbConceptSetConceptAssociation() { Uuid = Guid.NewGuid().ToByteArray(), ConceptSetUuid = retVal.Key.Value.ToByteArray(), ConceptUuid = r.ToByteArray() }); } } return(retVal); }
/// <summary> /// Update the roles to security user /// </summary> protected override SecurityUser UpdateInternal(SQLiteDataContext context, SecurityUser data) { var retVal = base.UpdateInternal(context, data); byte[] keyuuid = retVal.Key.Value.ToByteArray(); if (retVal.Roles != null) { var existingRoles = context.Connection.Table <DbSecurityUserRole>().Where(o => o.UserUuid == keyuuid).Select(o => o.RoleUuid); foreach (var r in retVal.Roles.Where(r => !existingRoles.Any(o => new Guid(o) == r.Key))) { r.EnsureExists(context); context.Connection.Insert(new DbSecurityUserRole() { Uuid = Guid.NewGuid().ToByteArray(), UserUuid = retVal.Key.Value.ToByteArray(), RoleUuid = r.Key.Value.ToByteArray() }); } } return(retVal); }
/// <summary> /// Inserts the specified person /// </summary> /// <param name="context"></param> /// <param name="data"></param> /// <returns></returns> protected override Person InsertInternal(SQLiteDataContext context, Person data) { if (data.Occupation != null) { data.Occupation = data.Occupation?.EnsureExists(context, false); } data.OccupationKey = data.Occupation?.Key ?? data.OccupationKey; var retVal = base.InsertInternal(context, data); byte[] sourceKey = retVal.Key.Value.ToByteArray(); // Insert language communication context.Connection.InsertAll(data.LanguageCommunication.Select(l => new DbPersonLanguageCommunication() { IsPreferred = l.IsPreferred, Uuid = l.Key?.ToByteArray() ?? Guid.NewGuid().ToByteArray(), LanguageCode = l.LanguageCode, SourceUuid = sourceKey })); return(retVal); }
/// <summary> /// Convert databased model to model /// </summary> public override SubstanceAdministration ToModelInstance(object dataInstance, SQLiteDataContext context) { var iddat = dataInstance as DbIdentified; var dbSbadm = dataInstance as DbSubstanceAdministration ?? dataInstance.GetInstanceOf <DbSubstanceAdministration>() ?? context.Connection.Table <DbSubstanceAdministration>().Where(o => o.Uuid == iddat.Uuid).First(); var dba = dataInstance.GetInstanceOf <DbAct>() ?? dataInstance as DbAct ?? context.Connection.Table <DbAct>().Where(a => a.Uuid == dbSbadm.Uuid).First(); var retVal = m_actPersister.ToModelInstance <SubstanceAdministration>(dba, context); if (dbSbadm.DoseUnitConceptUuid != null) { retVal.DoseUnitKey = new Guid(dbSbadm.DoseUnitConceptUuid); } if (dbSbadm.RouteConceptUuid != null) { retVal.RouteKey = new Guid(dbSbadm.RouteConceptUuid); } retVal.DoseQuantity = dbSbadm.DoseQuantity; retVal.SequenceId = (int)dbSbadm.SequenceId; if (dbSbadm.SiteConceptUuid != null) { retVal.SiteKey = new Guid(dbSbadm.SiteConceptUuid); } return(retVal); }