public IMetadata Get(Item item)
        {
            if (item == null)
            {
                throw new ArgumentNullException(nameof(item));
            }

            var args = new GetPageMetadataArgs(new MetadataViewModel(), item);

            CorePipeline.Run("metadata.getPageMetadata", args);
            return(args.Metadata);
        }
 public void Process(GetPageMetadataArgs args)
 {
     if (CatalogItemContext.IsCategory)
     {
         var category = CategoryViewModelFactory.Create(CatalogItemContext.Current.Item);
         args.Metadata.PageTitle   = category.Title;
         args.Metadata.Description = StringUtil.RemoveTags(category.Description);
     }
     if (CatalogItemContext.IsProduct)
     {
         var product = ProductViewModelFactory.Create(CatalogItemContext.Current.Item);
         args.Metadata.PageTitle   = product.Title;
         args.Metadata.Description = StringUtil.RemoveTags(product.Description);
         foreach (var tag in product.Tags)
         {
             args.Metadata.KeywordsList.Add(tag);
         }
     }
 }