private string GetViewPath(Guid definitionId, Guid layoutId) { var definition = _definitionRepository.GetById(definitionId); return(definition ?.Layouts?.FirstOrDefault(l => l.Id == layoutId) ?.ViewPath); }
private IEnumerable <uSyncDependency> GetBlocksDependencies(JToken blocks, DependencyFlags flags) { List <uSyncDependency> dependencies = new List <uSyncDependency>(); if (blocks is JObject jBlocks) { if (jBlocks.ContainsKey("definitionId")) { var id = jBlocks.Value <string>("definitionId"); if (Guid.TryParse(id, out Guid key)) { var definition = definitionRepository.GetById(key); if (definition != null) { var dataType = dataTypeService.GetDataType(definition.DataTypeKey.Value); if (dataType != null) { dependencies.Add(this.CreateDependency(dataType.GetUdi(), flags)); } } } } if (jBlocks.ContainsKey("content")) { var content = jBlocks.Value <JArray>("content"); var mapper = SyncValueMapperFactory.GetMapper(Constants.PropertyEditors.Aliases.NestedContent); dependencies.AddRange(mapper.GetDependencies(content, Constants.PropertyEditors.Aliases.NestedContent, flags)); } } return(dependencies); }
public override object ConvertIntermediateToObject(IPublishedElement owner, IPublishedPropertyType propertyType, PropertyCacheLevel referenceCacheLevel, object inter, bool preview) { ContentBlocksModelValue modelValue = _deserializer.Deserialize(inter?.ToString()); if (modelValue == null) { return(Rendering.ContentBlocks.Empty); } var config = propertyType.DataType.ConfigurationAs <ContentBlocksConfiguration>(); var header = config.Structure.HasFlag(Structure.Header) ? createViewModel(modelValue.Header) : null; var blocks = config.Structure.HasFlag(Structure.Blocks) ? modelValue.Blocks.Select(createViewModel).Where(rm => rm != null).ToList() : Enumerable.Empty <IContentBlockViewModel>(); return(new Rendering.ContentBlocks { Header = header, Blocks = blocks }); IContentBlockViewModel createViewModel(ContentBlockModelValue block) { if (block == null || block.IsDisabled) { return(null); } IContentBlockDefinitionRepository definitionRepository = Current.Factory.GetInstance <IContentBlockDefinitionRepository>(); if (definitionRepository == null) { return(null); } IContentBlockDefinition definition = definitionRepository.GetById(block.DefinitionId); if (definition == null || definition.Layouts == null || definition.Layouts.Any() == false) { return(null); } IContentBlockLayout layout = definition.Layouts.FirstOrDefault(l => l.Id == block.LayoutId); if (layout == null) { return(null); } IPublishedElement content = _nestedContentSingleValueConverter.ConvertIntermediateToObject(owner, propertyType, referenceCacheLevel, block?.Content?.ToString(), preview) as IPublishedElement; if (content == null) { return(null); } var contentType = content.GetType(); var genericViewModelFactoryType = typeof(IContentBlockViewModelFactory <>).MakeGenericType(new[] { contentType }); var viewModelFactory = Current.Factory.GetInstance(genericViewModelFactoryType) as IContentBlockViewModelFactory; if (viewModelFactory == null) { return(null); } return(viewModelFactory.Create(content, block.Id, block.DefinitionId, block.LayoutId)); } }