Skip to content

Instantly share code, notes, and snippets.

@EslaMx7
Forked from dev-kperera/run.csx
Created January 30, 2018 21:51
Show Gist options
  • Save EslaMx7/67e4a82caaa3f315dd725cf9686dc7c5 to your computer and use it in GitHub Desktop.
Save EslaMx7/67e4a82caaa3f315dd725cf9686dc7c5 to your computer and use it in GitHub Desktop.
Azure Functions with SharePoint Online CSOM C#
#r "Microsoft.SharePoint.Client.Runtime.dll"
#r "Microsoft.SharePoint.Client.dll"
using System;
using System.Security;
using System.Configuration;
using Microsoft.SharePoint.Client;
public static void Run(TimerInfo myTimer, TraceWriter log)
{
string userName = ConfigurationManager.AppSettings["User"];
string password = ConfigurationManager.AppSettings["Pass"];
string spSite = ConfigurationManager.AppSettings["SharePointSiteUrl"];
const string listName = "List00";
const string listNameDestination = "List01";
log.Info($"Trigger function executed at: {DateTime.Now} with {userName} | {password} on {spSite}");
using (ClientContext ctx = new ClientContext(spSite))
{
// Authenticating to SPO
SecureString securePassword = new SecureString();
foreach (char c in password.ToCharArray())
securePassword.AppendChar(c);
ctx.Credentials = new SharePointOnlineCredentials(userName, securePassword);
// Getting all SPO list items
List myList = ctx.Web.Lists.GetByTitle(listName);
CamlQuery query = CamlQuery.CreateAllItemsQuery(100);
ListItemCollection collListItem = myList.GetItems(query);
ctx.Load(collListItem);
ctx.ExecuteQuery();
// Destination list item - create list items
List destinationList = ctx.Web.Lists.GetByTitle(listNameDestination);
ListItemCreationInformation itemCreateInfo;
foreach (ListItem oListItem in collListItem)
{
// Getting list item
string customColumnValue = Convert.ToString(oListItem["CustomColumn"]);
log.Info($" List Item retrieved from {listName} => {customColumnValue}");
// Writing values to destination list which are retrieved
if (!string.IsNullOrEmpty(customColumnValue)){
itemCreateInfo = new ListItemCreationInformation();
ListItem newItem = destinationList.AddItem(itemCreateInfo);
newItem["Title"] = customColumnValue;
newItem.Update();
log.Info($" Updating column Title with {listNameDestination} with {customColumnValue}");
ctx.ExecuteQuery();
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment