Esempio n. 1
0
        private async Task <TypeWithInterfaceModel> GetOrAddDefaultInterfaceFromComputed(string typeDisplayFullName)
        {
            var type = SearchTypeFromCache(typeDisplayFullName);

            if (type == null)
            {
                return(null);
            }

            if (ComputedInterfaces.ContainsKey(type))
            {
                return(new TypeWithInterfaceModel
                {
                    Type = type,
                    InterfaceModel = ComputedInterfaces[type]
                });
            }

            var builder = new GenericUserInterfaceModelBuilder(type, Options);

            var interfaceModel = builder.Result;

            var overriding = GetDefaultOverriding(type);

            if (overriding != null)
            {
                await overriding.MainOverrideFunction(this, interfaceModel);
                await ProcessClassesAndArrays(interfaceModel);

                ComputedInterfaces.TryAdd(type, interfaceModel);
            }

            await ProcessClassesAndArrays(interfaceModel);

            return(new TypeWithInterfaceModel
            {
                Type = type,
                InterfaceModel = interfaceModel
            });
        }
Esempio n. 2
0
 /// <summary>
 /// Получить конфигуратор для блока, который является колекцией
 /// </summary>
 /// <typeparam name="TModel"></typeparam>
 /// <typeparam name="TItem"></typeparam>
 /// <param name="builder"></param>
 /// <param name="expression"></param>
 /// <returns></returns>
 public static GenericUserInterfaceBlockBuilderForCollectionType <TItem> GetBlockBuilderForCollection <TModel, TItem>(this GenericUserInterfaceModelBuilder <TModel> builder, Expression <Func <TModel, List <TItem> > > expression) where TModel : class
 {
     CheckCollectionItem <TItem>();
     return(new GenericUserInterfaceBlockBuilderForCollectionType <TItem>(builder, builder.TypeDescriptionBuilder, builder.GetBlockByExpression(expression)));
 }
Esempio n. 3
0
 /// <summary>
 /// Получить конфигуратор для блока
 /// </summary>
 /// <typeparam name="TModel"></typeparam>
 /// <typeparam name="TProp"></typeparam>
 /// <param name="builder"></param>
 /// <param name="expression"></param>
 /// <returns></returns>
 public static GenericUserInterfaceBlockBuilder <TProp> GetBlockBuilder <TModel, TProp>(this GenericUserInterfaceModelBuilder <TModel> builder, Expression <Func <TModel, TProp> > expression) where TModel : class
 {
     return(new GenericUserInterfaceBlockBuilder <TProp>(builder, builder.TypeDescriptionBuilder, builder.GetBlockByExpression(expression)));
 }