public Item Build([NotNull] IProjectBase project, [NotNull] ITextNode rootTextNode) { var guid = StringHelper.GetGuid(project, Guid); var database = project.GetDatabase(DatabaseName); var item = Factory.Item(database, guid, ItemName, ItemIdOrPath, TemplateIdOrPath).With(rootTextNode); if (ItemNameTextNode != TextNode.Empty) { item.ItemNameProperty.AddSourceTextNode(ItemNameTextNode); } if (TemplateIdOrPathTextNode != TextNode.Empty) { item.TemplateIdOrPathProperty.AddSourceTextNode(TemplateIdOrPathTextNode); } item.IconProperty.SetValue(IconTextNode); foreach (var fieldBuilder in Fields) { var field = fieldBuilder.Build(item); item.Fields.Add(field); } return(item); }
public PathMappingContext Parse([NotNull] IProjectBase project, [NotNull] ISourceFile sourceFile) { ItemName = sourceFile.GetFileNameWithoutExtensions(); Database = project.GetDatabase(project.Options.DatabaseName); var projectFileName = "/" + PathHelper.NormalizeItemPath(PathHelper.UnmapPath(project.ProjectDirectory, sourceFile.AbsoluteFileName)).TrimStart('/'); if (PathMapper.TryGetWebsiteFileName(projectFileName, out var filePath)) { FilePath = filePath; IsMapped = true; } if (PathMapper.TryGetWebsiteItemPath(projectFileName, out var databaseName, out var itemPath, out var isImport, out var uploadMedia)) { Database = project.GetDatabase(databaseName); ItemPath = itemPath; UploadMedia = uploadMedia; IsMapped = true; } return(this); }