Untitled

 avatar
unknown
plain_text
2 years ago
2.1 kB
3
Indexable
static void ProcessDataForSharePoint(ClientContext context, List targetList, string listName, DataTable databaseData, DataTable excelData)
{
    // Explicitly load the Title field
    context.Load(targetList, l => l.Fields.Include(f => f.InternalName, f => f.Title));
    context.ExecuteQuery();

    foreach (DataRow row in databaseData.Rows)
    {
        ListItemCreationInformation itemCreateInfo = new ListItemCreationInformation();
        ListItem newItem = targetList.AddItem(itemCreateInfo);

        foreach (DataRow mappingRow in excelData.Rows)
        {
            string databaseColumn = mappingRow["DatabaseColumn"].ToString();
            string sharePointColumn = mappingRow["SharePointColumn"].ToString();

            if (databaseData.Columns.Contains(databaseColumn))
            {
                // Check if the column exists in databaseData
                object columnValue = row[databaseColumn];

                // Handle concatenation for the Title field
                if (sharePointColumn.ToLower() == "title")
                {
                    string userFirstName = row["UserFirstName"] as string;
                    string userLastName = row["UserLastName"] as string;

                    if (!string.IsNullOrEmpty(userFirstName) || !string.IsNullOrEmpty(userLastName))
                    {
                        newItem[sharePointColumn] = $"{userFirstName} {userLastName}".Trim();
                    }
                    else
                    {
                        newItem[sharePointColumn] = "Default Title"; // Provide a default value if both are null
                    }
                }
                else
                {
                    newItem[sharePointColumn] = columnValue;
                }

                Console.WriteLine(columnValue);
            }
            else
            {
                Console.WriteLine($"Column '{databaseColumn}' not found in {listName} databaseData.");
            }
        }

        newItem.Update();
    }

    context.ExecuteQuery();
}
Editor is loading...
Leave a Comment