Beispiel #1
0
        public static FieldDto FromDomain(RootField field)
        {
            var properties = FieldPropertiesDtoFactory.Create(field.RawProperties);

            var result =
                SimpleMapper.Map(field,
                                 new FieldDto
            {
                FieldId      = field.Id,
                Properties   = properties,
                Partitioning = field.Partitioning.Key
            });

            if (field is IArrayField arrayField)
            {
                result.Nested = new List <NestedFieldDto>();

                foreach (var nestedField in arrayField.Fields)
                {
                    result.Nested.Add(FromDomain(nestedField));
                }
            }

            return(result);
        }
Beispiel #2
0
        public Schema ToSchema(FieldRegistry registry)
        {
            var fields = Empty;

            if (Fields != null)
            {
                fields = new RootField[Fields.Count];

                for (var i = 0; i < fields.Length; i++)
                {
                    var fieldModel = Fields[i];

                    var parititonKey = new Partitioning(fieldModel.Partitioning);

                    var field = registry.CreateRootField(fieldModel.Id, fieldModel.Name, parititonKey, fieldModel.Properties);

                    if (field is ArrayField arrayField && fieldModel.Children?.Count > 0)
                    {
                        foreach (var nestedFieldModel in fieldModel.Children)
                        {
                            var nestedField = registry.CreateNestedField(nestedFieldModel.Id, nestedFieldModel.Name, nestedFieldModel.Properties);

                            if (nestedFieldModel.IsHidden)
                            {
                                nestedField = nestedField.Hide();
                            }

                            if (nestedFieldModel.IsDisabled)
                            {
                                nestedField = nestedField.Disable();
                            }

                            arrayField = arrayField.AddField(nestedField);
                        }

                        field = arrayField;
                    }

                    if (fieldModel.IsDisabled)
                    {
                        field = field.Disable();
                    }

                    if (fieldModel.IsLocked)
                    {
                        field = field.Lock();
                    }

                    if (fieldModel.IsHidden)
                    {
                        field = field.Hide();
                    }

                    fields[i] = field;
                }
            }

            return(new Schema(Name, fields, Properties, IsPublished));
        }
Beispiel #3
0
        public static IFieldResolver Field(RootField field)
        {
            var fieldName = field.Name;

            return(new FuncFieldResolver <NamedContentData, IReadOnlyDictionary <string, IJsonValue>?>(c =>
            {
                return c.Source?.GetOrDefault(fieldName);
            }));
        }
Beispiel #4
0
        public static IFieldResolver Field(RootField field)
        {
            var fieldName = field.Name;

            return(Resolvers.Sync <ContentData, IReadOnlyDictionary <string, IJsonValue>?>(source =>
            {
                return source?.GetOrDefault(fieldName);
            }));
        }
Beispiel #5
0
 private static FuncFieldResolver <NamedContentData, IReadOnlyDictionary <string, IJsonValue> > FieldResolver(RootField field)
 {
     return(new FuncFieldResolver <NamedContentData, IReadOnlyDictionary <string, IJsonValue> >(c =>
     {
         return c.Source.GetOrDefault(field.Name);
     }));
 }
Beispiel #6
0
        private static string ComponentFieldDescription(string componentName, RootField field)
        {
            var name = field.DisplayName();

            return(string.Format(CultureInfo.InvariantCulture, FieldDescriptions.ComponentField, name, componentName));
        }
Beispiel #7
0
        private static string FieldDescription(string schemaName, RootField field)
        {
            var name = field.DisplayName();

            return(string.Format(CultureInfo.InvariantCulture, FieldDescriptions.ContentField, name, schemaName));
        }
Beispiel #8
0
        private static string FieldPartitionDescription(RootField field, string partition)
        {
            var name = field.DisplayName();

            return(string.Format(CultureInfo.InvariantCulture, FieldDescriptions.ContentPartitionField, name, partition));
        }