public ReadDataApiController(ServiceUtility serviceUtility, ControllerRestInfoRepository controllerRestInfoRepository)
 {
     this.serviceUtility     = serviceUtility;
     dataStructureParameters = new Lazy <Tuple <string, Type>[]>(() =>
     {
         var dataStructureInfoMetadata = controllerRestInfoRepository.ControllerConceptInfo[this.GetType()] as DataStructureInfoMetadata;
         if (dataStructureInfoMetadata == null)
         {
             throw new InvalidOperationException(
                 $"Registered {nameof(ConceptInfoRestMetadata)} for {GetType().Name} should be an instance of {nameof(DataStructureInfoMetadata)}.");
         }
         return(dataStructureInfoMetadata.GetParameters());
     });
 }
        private static ControllerRestInfoRepository CreateControllerRestInfoRepository(RhetosHost rhetosHost, RestApiOptions options)
        {
            var controllerRepository = new ControllerRestInfoRepository();

            foreach (var conceptInfoRestMetadataProvider in options.ConceptInfoRestMetadataProviders)
            {
                var metadataFromProvider = conceptInfoRestMetadataProvider.GetConceptInfoRestMetadata(rhetosHost);
                foreach (var metadataItem in metadataFromProvider)
                {
                    controllerRepository.ControllerConceptInfo.Add(metadataItem.ControllerType, metadataItem);
                }
            }

            // transform all group names
            if (options.GroupNameMapper != null)
            {
                foreach (var restMetadata in controllerRepository.ControllerConceptInfo.Values)
                {
                    restMetadata.ApiExplorerGroupName = options.GroupNameMapper.Invoke(restMetadata.ConceptInfo, restMetadata.ApiExplorerGroupName);
                }
            }

            return(controllerRepository);
        }
 public RestApiControllerRouteConvention(RestApiOptions restApiOptions, ControllerRestInfoRepository controllerRestInfoRepository)
 {
     this.restApiOptions = restApiOptions;
     this.controllerRestInfoRepository = controllerRestInfoRepository;
 }
 public ReadWriteDataApiController(ServiceUtility serviceUtility, ControllerRestInfoRepository controllerRestInfoRepository)
     : base(serviceUtility, controllerRestInfoRepository)
 {
 }
 public ConfigureSwaggerGenOptions(ControllerRestInfoRepository controllerRestInfoRepository)
 {
     this.controllerRestInfoRepository = controllerRestInfoRepository;
 }
 public RestApiControllerFeatureProvider(ControllerRestInfoRepository controllerRestInfoRepository)
 {
     this.controllerRestInfoRepository = controllerRestInfoRepository;
 }