Beispiel #1
0
        /// <summary>
        ///  Concatene la liste des champs donnés dans la Query String pour un nom de modele json api
        ///  Et la liste les champs clés des propriétés de relations
        /// </summary>
        private List <string> GetListeFieldsFromRelations(Type type, IEnumerable <PropertyInfo> relationshipProperties)
        {
            // Récuperation des champs simple pour le type de modele
            List <string> fields = base.GetListeFields(type);

            List <string> fieldsKey = new List <string>();

            foreach (PropertyInfo relation in relationshipProperties)
            {
                PropertyInfo foreignKeyProperty = AttributeRelationsHandling.FindForeignKeyPropertyAndAttribute(type, relation.Name).Item1;

                if (foreignKeyProperty == null)
                {
                    throw new JsonApiArchitectureException($"ForeignKeyJsonApi manquant pour {relation.Name} dans {type.Name}, ajouter[ForeignKeyJsonApi (RelationName = nameof({relation.Name}))]");
                }

                fieldsKey.Add(foreignKeyProperty.Name);
            }

            if (fields != null && fieldsKey.Any())
            {
                fields.AddRange(fieldsKey);
                return(fields);
            }

            if (fields == null && fieldsKey.Any())
            {
                return(fieldsKey);
            }

            return(fields);
        }