Ejemplo n.º 1
0
        private XElement SerializeDataSource(FormDataSourceDefinition dataSourceDefinition)
        {
            var node = new XElement("DataSource");

            if (dataSourceDefinition != null)
            {
                var dataSource = syncFormService.GetDataSource(dataSourceDefinition.Id);

                node.Add(new XElement("Source", dataSource?.Name ?? dataSourceDefinition.Id.ToString()));
                var mappingsNode = new XElement("Mappings");

                foreach (var mapping in dataSourceDefinition.Mappings)
                {
                    var mNode = new XElement("Mapping");

                    mNode.Add(new XElement(nameof(mapping.DataFieldKey), mapping.DataFieldKey));
                    mNode.Add(new XElement(nameof(mapping.PrevalueKeyfield), mapping.PrevalueKeyfield));
                    mNode.Add(new XElement(nameof(mapping.PrevalueValueField), mapping.PrevalueValueField));
                    mNode.Add(new XElement(nameof(mapping.PrevalueTable), mapping.PrevalueTable));
                    mNode.Add(new XElement(nameof(mapping.DataType), mapping.DataType));
                    mNode.Add(new XElement(nameof(mapping.DefaultValue), mapping.DefaultValue));

                    mappingsNode.Add(mNode);
                }

                node.Add(mappingsNode);
            }

            return(node);
        }
Ejemplo n.º 2
0
        private void DesersilizeDataSource(XElement info, Form item)
        {
            var node = info.Element("DataSource");

            if (node == null)
            {
                return;
            }

            var dataSourceDefinition = new FormDataSourceDefinition()
            {
                Mappings = new List <FormDataSourceMapping>()
            };

            var source = node.Element("Source").ValueOrDefault(string.Empty);

            if (string.IsNullOrWhiteSpace(source))
            {
                return;
            }

            var dataSource = syncFormService.GetDataSource(source);

            if (dataSource != null)
            {
                dataSourceDefinition.Id = dataSource.Id;
            }
            else if (Guid.TryParse(source, out Guid id))
            {
                dataSourceDefinition.Id = id;
            }

            var mappingNode = node.Element("Mappings");

            if (mappingNode != null)
            {
                foreach (var mNode in mappingNode.Elements("Mapping"))
                {
                    var mapping = new FormDataSourceMapping();
                    mapping.DataFieldKey       = mNode.Element(nameof(mapping.DataFieldKey)).ValueOrDefault(string.Empty);
                    mapping.PrevalueKeyfield   = mNode.Element(nameof(mapping.PrevalueKeyfield)).ValueOrDefault(string.Empty);
                    mapping.PrevalueValueField = mNode.Element(nameof(mapping.PrevalueValueField)).ValueOrDefault(string.Empty);
                    mapping.PrevalueTable      = mNode.Element(nameof(mapping.PrevalueTable)).ValueOrDefault(string.Empty);
                    mapping.DataType           = mNode.Element(nameof(mapping.DataType)).ValueOrDefault(FieldDataType.String);
                    mapping.DefaultValue       = mNode.Element(nameof(mapping.DefaultValue)).ValueOrDefault(string.Empty);

                    dataSourceDefinition.Mappings.Add(mapping);
                }
            }

            item.DataSource = dataSourceDefinition;
        }