/// <summary> /// From model instance /// </summary> public override object FromModelInstance(Core.Model.Entities.EntityNameComponent modelInstance, DataContext context) { var retVal = base.FromModelInstance(modelInstance, context) as DbEntityNameComponent; // Duplicate name? var existing = context.FirstOrDefault <DbPhoneticValue>(o => o.Value == modelInstance.Value); if (existing != null && existing.SequenceId != retVal.ValueSequenceId) { retVal.ValueSequenceId = existing.SequenceId.Value; } else if (existing == null) { var value = context.Insert(new DbPhoneticValue() { Value = modelInstance.Value }); retVal.ValueSequenceId = value.SequenceId.Value; } else { System.Diagnostics.Debugger.Break(); } return(retVal); }
/// <summary> /// From model instance /// </summary> public override object FromModelInstance(Core.Model.Entities.EntityNameComponent modelInstance, DataContext context) { var retVal = base.FromModelInstance(modelInstance, context) as DbEntityNameComponent; // Duplicate name? var existing = context.FirstOrDefault <DbPhoneticValue>(o => o.Value == modelInstance.Value); if (existing != null && existing.SequenceId != retVal.ValueSequenceId) { retVal.ValueSequenceId = existing.SequenceId.Value; } else if (existing == null) { var phoneticCoder = ApplicationServiceContext.Current.GetService <IPhoneticAlgorithmHandler>(); var value = context.Insert(new DbPhoneticValue() { Value = modelInstance.Value, PhoneticAlgorithmKey = phoneticCoder?.AlgorithmId ?? PhoneticAlgorithmKeys.None, PhoneticCode = phoneticCoder?.GenerateCode(modelInstance.Value) }); retVal.ValueSequenceId = value.SequenceId.Value; } else { System.Diagnostics.Debugger.Break(); } return(retVal); }
/// <summary> /// Update /// </summary> public override Core.Model.Entities.EntityNameComponent UpdateInternal(DataContext context, Core.Model.Entities.EntityNameComponent data) { if (data.ComponentType != null) { data.ComponentType = data.ComponentType?.EnsureExists(context) as Concept; } data.ComponentTypeKey = data.ComponentType?.Key ?? data.ComponentTypeKey; return(base.UpdateInternal(context, data)); }
/// <summary> /// Insert context /// </summary> public override Core.Model.Entities.EntityNameComponent InsertInternal(DataContext context, Core.Model.Entities.EntityNameComponent data, IPrincipal principal) { if (data.ComponentType != null) { data.ComponentType = data.ComponentType?.EnsureExists(context, principal) as Concept; } data.ComponentTypeKey = data.ComponentType?.Key ?? data.ComponentTypeKey; return(base.InsertInternal(context, data, principal)); }