/// <summary> /// Act Extension to Fhir Extension /// </summary> public static Extension ToExtension(IModelExtension ext) { var extensionTypeService = ApplicationServiceContext.Current.GetService <IExtensionTypeRepository>(); var eType = extensionTypeService.Get(ext.ExtensionTypeKey); var retVal = new Extension() { Url = eType.Name }; if (ext.Value is Decimal || eType.ExtensionHandler == typeof(DecimalExtensionHandler)) { retVal.Value = new FhirDecimal((Decimal)(ext.Value ?? new DecimalExtensionHandler().DeSerialize(ext.Data))); } else if (ext.Value is String || eType.ExtensionHandler == typeof(StringExtensionHandler)) { retVal.Value = new FhirString((String)(ext.Value ?? new StringExtensionHandler().DeSerialize(ext.Data))); } else if (ext.Value is Boolean || eType.ExtensionHandler == typeof(BooleanExtensionHandler)) { retVal.Value = new FhirBoolean((bool)(ext.Value ?? new BooleanExtensionHandler().DeSerialize(ext.Data))); } else { retVal.Value = new FhirBase64Binary(ext.Data); } return(retVal); }
/// <summary> /// Act Extension to Fhir Extension /// </summary> public static Extension ToExtension(IModelExtension ext) { var extensionTypeService = ApplicationContext.Current.GetService <IMetadataRepositoryService>(); var eType = extensionTypeService.GetExtensionType(ext.ExtensionTypeKey); var retVal = new Extension() { Url = eType.Name }; if (ext.Value is Decimal) { retVal.Value = new FhirDecimal((Decimal)ext.Value); } else if (ext.Value is String) { retVal.Value = new FhirString((String)ext.Value); } else if (ext.Value is Boolean) { retVal.Value = new FhirBoolean((bool)ext.Value); } else { retVal.Value = new FhirBase64Binary(ext.Data); } return(retVal); }
protected virtual void AddExtension(IModelExtension extension) { EnsureNotSealed(); EnsureNotSealedForExtensions(); if (!_extensions.Contains(extension)) { _extensions.Add(extension); } }
protected virtual void RemoveExtension(IModelExtension extension) { EnsureNotSealed(); EnsureNotSealedForExtensions(); if (_extensions.Contains(extension)) { _extensions.Remove(extension); } }
public async Task SaveSurveyExtensionAsync(Survey survey, IModelExtension extension) { if (string.IsNullOrEmpty(survey.SlugName) && string.IsNullOrEmpty(survey.Title)) { throw new ArgumentNullException("survey", "The survey for saving has to have the slug or the title."); } var slugName = string.IsNullOrEmpty(survey.SlugName) ? GenerateSlug(survey.Title, 100) : survey.SlugName; if (!(extension is TableEntity)) { throw new ArgumentException("The extension should inherit from TableServiceEntity", "extension"); } var extensionEntity = extension as TableEntity; extensionEntity.PartitionKey = survey.TenantId; extensionEntity.RowKey = string.Format(CultureInfo.InvariantCulture, "{0}_{1}", survey.TenantId, slugName); await this.surveyTableExtension.SaveAsync(extensionEntity); }
void IMicroModel.RemoveExtension(IModelExtension modelExtension) { RemoveExtension(modelExtension); }
void IMicroModel.AddExtension(IModelExtension modelExtension) { AddExtension(modelExtension); }