public async Task <IActionResult> GetOneForRender(string id) { var result = await _standardRepository.GetOneForRenderAsync(id); // Enhancement 0.9.0: We need to append more controls which are related to Composite Control if (result.Controls != null && result.Controls.Any()) { var compositeControls = result.Controls.Where(a => a.Type == Entities.SectionParts.Controls.ControlType.Composite).ToList(); foreach (var control in compositeControls) { var compositeControl = await _compositeControlRepository.GetOneAsync(control.CompositeControlId); foreach (var childControl in compositeControl.Controls) { childControl.HideSensitive(); childControl.CompositeControlId = control.Name; childControl.Name = control.Name + "_" + childControl.Name; } result.Controls.AddRange(compositeControl.Controls); } } _logger.Info("Found standard component: {@result}", result); return(Ok(result)); }
public async Task <IActionResult> Get(string id) { return(Ok(await _controlRepository.GetOneAsync(id))); }
public async Task <IActionResult> FetchControlDatasource(string pageId, [FromBody] PageSelectionDatasourceModel model) { var page = await _pageRepository.GetOneAsync(pageId); if (page != null) { var section = page.Builder.Sections.First(a => a.Name == model.SectionName); if (section.ConstructionType == SectionContructionType.Standard) { // Only support Standard component var sectionStandard = (await _standardServiceProvider.GetStandardComponentsByIds(new List <string> { section.ComponentId })).First(); if (!model.IsChildCompositeControl) { var control = sectionStandard.Controls.First(a => a.Name == model.ControlName); if (control.Type == Portal.Entities.SectionParts.Controls.ControlType.AutoComplete || control.Type == Portal.Entities.SectionParts.Controls.ControlType.Select) { var parameters = model? .Parameters .Select(a => new ExecuteParamModel { Name = a.Name, RemoveQuotes = a.RemoveQuotes, ReplaceValue = a.ReplaceValue }).ToList(); var result = await _databaseServiceProvider .ExecuteDatabase( control.DatasourceOptions.DatabaseOptions.DatabaseConnectionId, control.DatasourceOptions.DatabaseOptions.Query, parameters ); return(Ok(result)); } return(BadRequest()); } else { var compositeControl = await _controlRepository.GetOneAsync(model.CompositeControlId); var control = compositeControl.Controls.First(a => a.Name == model.ControlName); if (control.Type == Portal.Entities.SectionParts.Controls.ControlType.AutoComplete || control.Type == Portal.Entities.SectionParts.Controls.ControlType.Select) { var parameters = model? .Parameters .Select(a => new ExecuteParamModel { Name = a.Name, RemoveQuotes = a.RemoveQuotes, ReplaceValue = a.ReplaceValue }).ToList(); var result = await _databaseServiceProvider .ExecuteDatabase( control.DatasourceOptions.DatabaseOptions.DatabaseConnectionId, control.DatasourceOptions.DatabaseOptions.Query, parameters ); return(Ok(result)); } return(BadRequest()); } } else { return(BadRequest()); } } return(NotFound()); }