/// <summary> /// The invokes the Component async. /// </summary> /// <param name="org"> The org. </param> /// <param name="service"> The service. </param> /// <param name="edition"> The edition. </param> /// <param name="serviceMetadata"> The service Metadata. </param> /// <param name="viewMetadatas">The view metadata list</param> /// <param name="codeCompilationResult"> The code Compilation Result. </param> /// <returns> The <see cref="Task"/>. </returns> public async Task <IViewComponentResult> InvokeAsync( string org, string service, string edition, ServiceMetadata serviceMetadata = null, IList <ViewMetadata> viewMetadata = null, CodeCompilationResult codeCompilationResult = null) { ServiceEditionIdentifier serviceEdition = new ServiceEditionIdentifier { Org = org, Service = service, Edition = edition }; CodeCompilationResult compilation = null; if (string.IsNullOrEmpty(_generalSettings.RuntimeMode) || !_generalSettings.RuntimeMode.Equals("ServiceContainer")) { compilation = codeCompilationResult ?? await Compile(serviceEdition); var metadata = serviceMetadata ?? await GetServiceMetadata(serviceEdition); EditionStatusViewModel model = CreateModel(serviceEdition, compilation, metadata); return(View(model)); } return(View(new EditionStatusViewModel())); }
private Task <ServiceMetadata> GetServiceMetadata(ServiceEditionIdentifier serviceEdition) { Func <ServiceMetadata> fetchServiceMetadata = () => _repository.GetServiceMetaData( serviceEdition.Org, serviceEdition.Service, serviceEdition.Edition); return(Task <ServiceMetadata> .Factory.StartNew(fetchServiceMetadata)); }
private Task <CodeCompilationResult> Compile(ServiceEditionIdentifier serviceEdition) { Func <CodeCompilationResult> compile = () => _compilation.CreateServiceAssembly( serviceEdition.Org, serviceEdition.Service, serviceEdition.Edition); return(Task <CodeCompilationResult> .Factory.StartNew(compile)); }
private Task <IList <ViewMetadata> > GetViewMetadata(ServiceEditionIdentifier serviceEdition) { Func <IList <ViewMetadata> > fetchViewMetadata = () => _viewRepository.GetViews( serviceEdition.Org, serviceEdition.Service, serviceEdition.Edition); return(Task <IList <ViewMetadata> > .Factory.StartNew(fetchViewMetadata)); }
private EditionStatusViewModel CreateModel( ServiceEditionIdentifier serviceEditionIdentifier, CodeCompilationResult compilationResult, ServiceMetadata serviceMetadata ) { var userMessages = CompilationUserMessages(compilationResult) .Union(ServiceMetadataMessages(serviceMetadata)) .ToList(); userMessages.Sort(); return(new EditionStatusViewModel { EditionIdentifier = serviceEditionIdentifier, CodeCompilationMessages = FilterCompilationInfos(compilationResult).ToList(), UserMessages = userMessages }); }
/// <summary> /// The invokes the Component async. /// </summary> /// <param name="org"> The org. </param> /// <param name="service"> The service. </param> /// <param name="edition"> The edition. </param> /// <param name="serviceMetadata"> The service Metadata. </param> /// <param name="viewMetadatas">The view metadata list</param> /// <param name="codeCompilationResult"> The code Compilation Result. </param> /// <returns> The <see cref="Task"/>. </returns> public async Task <IViewComponentResult> InvokeAsync( string org, string service, string edition, ServiceMetadata serviceMetadata = null, IList <ViewMetadata> viewMetadata = null, CodeCompilationResult codeCompilationResult = null) { var serviceEdition = new ServiceEditionIdentifier { Org = org, Service = service, Edition = edition }; var compilation = codeCompilationResult ?? await Compile(serviceEdition); var metadata = serviceMetadata ?? await GetServiceMetadata(serviceEdition); var views = viewMetadata ?? await GetViewMetadata(serviceEdition); var model = CreateModel(serviceEdition, compilation, metadata, views); return(View(model)); }