Как проверить существование или очистить содержимое списка SharePoint с помощью кода C#?

Вопрос или проблема

Я завершил код, который создает список SharePoint с нуля, создает столбцы и загружает данные, которые я получаю из GET-запроса API внешней базы данных.

Как мне:

  1. проверить, существует ли уже список SharePoint
  2. очистить содержимое списка SharePoint
  3. загрузить список новыми данными.

Без выполнения этих шагов мне приходится каждый раз создавать список с нуля и присваивать ему уникальное имя.

Ответ или решение

Для выполнения ваших задач с SharePoint списком из C# кода, вам необходимо использовать библиотеку SharePoint Client Object Model (CSOM) или REST API. Вот пошаговое руководство для выполнения всех ваших требований: проверки существования списка, очистки его содержимого и загрузки новых данных.

1. Проверка существования списка

Для проверки того, существует ли список в SharePoint, вы можете использовать следующий код:

using Microsoft.SharePoint.Client;

// Метод для проверки существования списка
public bool CheckIfListExists(ClientContext context, string listTitle)
{
    List list = null;
    try
    {
        list = context.Web.Lists.GetByTitle(listTitle);
        context.Load(list);
        context.ExecuteQuery();

        return list != null; // Список существует
    }
    catch (ServerException ex)
    {
        if (ex.ServerErrorType_name == "System.IO.FileNotFoundException")
        {
            return false; // Список не найден
        }

        throw; // Перекиньте исключение, так как оно не связано с отсутствием списка
    }
}

2. Очистка содержимого списка

Если список существует, следующий шаг — очистить его содержимое. Для этого можно использовать следующий код:

public void ClearListContents(ClientContext context, string listTitle)
{
    List list = context.Web.Lists.GetByTitle(listTitle);
    CamlQuery query = new CamlQuery();
    query.ViewXml = "<View><Query></Query></View>";

    ListItemCollection items = list.GetItems(query);
    context.Load(items);
    context.ExecuteQuery();

    if (items.Count > 0)
    {
        foreach (ListItem item in items)
        {
            item.DeleteObject();
        }

        context.ExecuteQuery(); // Применить изменения
    }
}

3. Загрузка новых данных в список

Вы можете загрузить новые данные в список следующим образом:

public void LoadDataIntoList(ClientContext context, string listTitle, List<MyDataObject> newData) // MyDataObject - ваш класс с данными
{
    List list = context.Web.Lists.GetByTitle(listTitle);

    foreach (var data in newData)
    {
        ListItemCreationInformation itemCreateInfo = new ListItemCreationInformation();
        ListItem newItem = list.AddItem(itemCreateInfo);

        newItem["Title"] = data.Title; // Пример присвоения значений (измените под ваши поля)
        newItem.Update();
    }

    context.ExecuteQuery(); // Применить изменения
}

Итоговый код

Объединяя все вышеописанные методы, вы получите следующий общий метод, который выполняет все три задачи:

public void UpdateSharePointList(ClientContext context, string listTitle, List<MyDataObject> newData)
{
    // Проверка существования списка
    if (CheckIfListExists(context, listTitle))
    {
        // Очистка содержимого списка
        ClearListContents(context, listTitle);
    }
    else
    {
        // Логика для создания списка, если он не существует (опционально)
    }

    // Загрузка новых данных в список
    LoadDataIntoList(context, listTitle, newData);
}

Заключение

Теперь у вас есть полный набор методов для работы с вашим SharePoint списком: проверка существования, очистка содержимого и загрузка новых данных. Вы можете адаптировать код в зависимости от ваших требований и структуры данных. Убедитесь, что у вас есть соответствующие полномочия на выполнение этих действий в SharePoint.

Оцените материал
Добавить комментарий

Капча загружается...