Exemple #1
0
        public void Initialize(Engine engine)
        {
            engine.Execute("const DataModel = {}");

            List <DataModel> list = _dataModelService.GetDataModels();

            for (int index = 0; index < list.Count; index++)
            {
                DataModel dataModel = list[index];
                string    name;
                Type      type = dataModel.GetType();
                if (type.IsGenericType)
                {
                    type = type.GetGenericTypeDefinition();
                    string stripped = type.Name.Split('`')[0];
                    name = $"{stripped}<{string.Join(", ", ((TypeInfo) type).GenericTypeParameters.Select(t => t.Name))}>";
                }
                else
                {
                    name = type.Name;
                }

                string variableName = "DataModel" + Guid.NewGuid().ToString().Substring(0, 8);
                engine.SetValue(variableName, dataModel);
                engine.Execute($"DataModel.{name} = {variableName}");
            }
        }
        public async Task GetDataModel()
        {
            // Use a custom ContractResolver that respects [DataModelIgnore]
            string json = JsonConvert.SerializeObject(_dataModelService.GetDataModels(), _serializerSettings);

            HttpContext.Response.ContentType = MimeType.Json;
            await using TextWriter writer    = HttpContext.OpenResponseText();
            await writer.WriteAsync(json);
        }
        public DataModelPropertiesViewModel GetMainDataModelVisualization()
        {
            DataModelPropertiesViewModel viewModel = new(null, null, null);

            foreach (DataModel dataModelExpansion in _dataModelService.GetDataModels().OrderBy(d => d.DataModelDescription.Name))
            {
                viewModel.Children.Add(new DataModelPropertiesViewModel(dataModelExpansion, viewModel, new DataModelPath(dataModelExpansion)));
            }

            // Update to populate children
            viewModel.Update(this, null);
            viewModel.UpdateRequested += (sender, args) => viewModel.Update(this, null);
            return(viewModel);
        }