/// <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);
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
 protected virtual void AddExtension(IModelExtension extension)
 {
     EnsureNotSealed();
     EnsureNotSealedForExtensions();
     if (!_extensions.Contains(extension))
     {
         _extensions.Add(extension);
     }
 }
Beispiel #4
0
 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);
        }
Beispiel #6
0
 void IMicroModel.RemoveExtension(IModelExtension modelExtension)
 {
     RemoveExtension(modelExtension);
 }
Beispiel #7
0
 void IMicroModel.AddExtension(IModelExtension modelExtension)
 {
     AddExtension(modelExtension);
 }