Получите немедленное имя папки, если присутствует конкретный компонент, используя основные службы


1

У меня есть имя главной папки (mf) как 030 Main, в котором есть папки (f), вложенные папки (sf) и компоненты (c), как показано ниже. mf- main foler, f- папка, c-компонент. просто, чтобы сделать простой, если c присутствует, как мне получить немедленное имя f (имя папки i.e).

Например, как показано ниже

100 Африка (е) -> 110 Сомали (SF) -> 010 Play (с), обзор 020 (с) 030 Пляж (с) 120 Индия (е) -> 110 Pune (sf) -> 010 Play (c), 020 Station (c), 030 Fishing (c) 120 Индия (f) -> 110 Kerala (sf) -> 010 Play (c), 020 Станция (c), 030 Пляж (c), 040 полет (c)

Есть также некоторые компоненты в пределах 030 Main.

Теперь я хочу получить некоторый контент только из компонентов пляжа. Наряду с этим я хочу немедленную подпапку name.i.e (если пляж присутствует, нужны соответствующие названия городов, также как сомалия, керала). Я попробовал ниже: сначала использовал компонентный фильтр, а затем извлек все компоненты, затем проверил «030 Beach», а затем получил контент. Теперь я хочу, чтобы имя папки имело компонент «030 Beach».

OrganizationalItemItemsFilterData filter = new OrganizationalItemItemsFilterData(); 
      filter.ItemTypes = new[] { ItemType.Component }; 
      filter.Recursive = true; 

foreach (var id in client.GetListXml(folder, filter).Elements().ToList()) 
       { 
        string compTitle=id.Attribute("Title").Value; 
        string compId = id.Attribute("ID").Value; 

        StringBuilder sb = new StringBuilder(); 
        if (compTitle.Equals("030 Beach")) 
        { 

         ComponentData component1 = client.Read(compId, new ReadOptions()) as ComponentData; 
         var componentContent = component1.Content; 

}

+1

Hi Rachel, В вашем вопросе я не могу видеть точный вопрос вы faci нг. Можете ли вы изменить свой вопрос, чтобы указать проблему, с которой вы сталкиваетесь. 30 дек. 152015-12-30 06:35:13

  0

Похоже, вы пытаетесь классифицировать курорты средствами, которые у них есть. Это может быть проще с использованием ключевых слов. 30 дек. 152015-12-30 09:11:37

4

После того, как вы получите ComponentData объект, который вы можете получить доступ к свойству LocationInfo для доступа к объекту хранилища (Folder), где находится компонент

Вы можете получить имя папки, добавив этот line к вам код:

string componentsOrganizationalItem = component1.LocationInfo.OrganizationalItem.Title;