Dii
Dii

Reputation: 147

Getting document attachments using Kentico API

I created book store site on Kentico i used only their adminstration and display the data from my website using Kentico API's but am strugled in getting attachment files related to specific document i've got document data with no problem using

TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
var documents = tree.SelectNodes("CMS.Product");

need also to get related attachment files like book PDFs.. i've tried to use

  1. DocumentAttachment
  2. AttachmentInfo
  3. AttachmentInfoProvider classes but i couldn't get the data .. I would appreciate if any one help me in that.

Actually am searching about something like GetAttachment().Where("AttachmentFile","Ënglish File")

Upvotes: 0

Views: 1200

Answers (3)

Enn
Enn

Reputation: 2209

You can filter the returned attachments based on their values in columns (CMS_Attachment table) by using a code like this:

   var attachment = AttachmentInfoProvider.GetAttachments()
       .WhereEquals("AttachmentName", "Englishfile")
       .And()
       .WhereEquals("AttachmentExtension", "jpg")
       .TopN(1)
       .FirstOrDefault();

   if (attachment != null)
   {
         // attachment was found
   }

This code will get one .jpg file where attachment name equals to "EnglishFile"

Upvotes: 1

Chetan Sharma
Chetan Sharma

Reputation: 1442

This is from Kentico documentation. This example shows how to add an attachment and modify its metadata. You can ignore that part.You will have to make it generic to work for all examples.

Kentico 9 API Links

// Creates a new instance of the Tree provider
TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);

// Gets a page
TreeNode page = tree.SelectSingleNode(SiteContext.CurrentSiteName, "/Articles", "en-us");

if (page != null)
{
    // Gets an attachment by file name
    AttachmentInfo attachment = DocumentHelper.GetAttachment(page, "file.png", tree);

    // Edits the attachment's metadata (name, title and description)
    attachment.AttachmentName += " - modified";
    attachment.AttachmentTitle = "Attachment title";
    attachment.AttachmentDescription = "Attachment description.";

    // Ensures that the attachment can be updated without supplying its binary data
    attachment.AllowPartialUpdate = true;

    // Saves the modified attachment into the database
    AttachmentInfoProvider.SetAttachmentInfo(attachment);
}

Upvotes: 0

Dii
Dii

Reputation: 147

Solved after using something like

var Attachment = AttachmentInfoProvider.GetAttachments(226, true);

Upvotes: 0

Related Questions