Beispiel #1
0
        /// <summary>
        /// Loads the metadata (mappings, types, etc) for this DataModel.
        /// </summary>
        /// <param name="type"></param>
        private void PreInitialize(Type type)
        {
            InnerData         = new CaseInsensitiveDictionary <object>();
            EntityMappings    = GetMapping(type);
            ColumnMappedValue = new ColumnMappedValueProperty(this, EntityMappings);
            Convert           = new DataModelConverter(this);

            DataChanging      += DataModel_DataChanging;
            DataChanged       += DataModel_DataChanged;
            ModifiedProperties = new CaseInsensitiveStringList();
        }
        protected override DataModelValue ParseToDataModel(ref Exception?parseException)
        {
            try
            {
                return(DataModelConverter.FromJson(Value));
            }
            catch (JsonException ex)
            {
                parseException = ex;

                return(Value.NormalizeSpaces());
            }
        }
        private async Task RefreshDiagram()
        {
            try
            {
                var dataTypes = DataModelManager.GetDataTypes();
                MermaidScript = DataModelConverter.ConvertToDiagramCode(dataTypes);

                await JSRunTime.InvokeVoidAsync("mermaidLib.renderMermaidDiagram", "mermaid-canvas", MermaidScript);
            }
            catch (JSException)
            {
                Console.WriteLine("Could not render mermaid diagram");
            }
            catch (DataModelConversionException)
            {
                Console.WriteLine("Error when converting the model");
            }
        }
        protected override async ValueTask <DataModelValue> ParseToDataModel(IExecutionContext executionContext, Resource resource, CancellationToken token)
        {
            var content = await resource.GetContent(token).ConfigureAwait(false);

            if (content is null)
            {
                return(DataModelValue.Null);
            }

            try
            {
                return(DataModelConverter.FromJson(content));
            }
            catch (JsonException ex)
            {
                await executionContext.Log(LogLevel.Warning, exception : ex, token : token).ConfigureAwait(false);

                return(content.NormalizeSpaces());
            }
        }
        private IList <T> ToList <T>(DataTable table) where T : class
        {
            if (table == null)
            {
                throw new ArgumentNullException("table");
            }
            DataRowCollection rows = table.Rows;

            if (rows.Count <= 0)
            {
                return(new List <T>(0));
            }
            if (typeof(T) == typeof(object))
            {
                DataModelProxyConverter proxy = DataModelProxyConverter.GetInstance();
                return((IList <T>)proxy.ToList(table));
            }
            else
            {
                return(DataModelConverter.ToList <T>(table));
            }
        }
Beispiel #6
0
 protected override Task SerializeToStreamAsync(Stream stream, TransportContext?context) => DataModelConverter.ToJsonAsync(stream, _value);