class SetUser { public User ByName(ClientContext clientContext, List list, ListItem item) { clientContext.Load(clientContext.Web.SiteUsers, i => i.IncludeWithDefaultProperties(u => u.Title, u => u.Id)); clientContext.ExecuteQuery(); User user = clientContext.Web.SiteUsers.GetById(1); bool isUserPresent = false; int numberOfTries = 5; string userName; Console.Clear(); Console.WriteLine("Site: " + clientContext.Web.Title); Console.WriteLine("List: " + list.Title); Console.WriteLine("Item: " + item.DisplayName); Console.WriteLine(); Console.WriteLine("Enter the User name"); string skipReadingUserName = Console.ReadLine(); do { if (skipReadingUserName == "" || numberOfTries == 0) return DefaultUser(clientContext, list, item); userName = skipReadingUserName; numberOfTries--; foreach (User userSearch in clientContext.Web.SiteUsers) if (userSearch.Title == userName) { //if site-user with exact name is present. user = userSearch; isUserPresent = true; break; } else if (userSearch.Title.Split(' ')[0] == userName) { //if site-user with FirstName is equal to the specified name is present. user = userSearch; isUserPresent = true; } if (!isUserPresent) { Console.Clear(); Console.WriteLine("Site: " + clientContext.Web.Title); Console.WriteLine("List: " + list.Title); Console.WriteLine("Item: " + item.DisplayName); Console.WriteLine(); Console.WriteLine("The User name is miss-spelled \nOr\n User does not exists.\nPlease re-enter the User Name/Title"); string skipReadingItemName = Console.ReadLine(); } } while (!isUserPresent); clientContext.Load(user); clientContext.ExecuteQuery(); return user; } //function to get default user. private User DefaultUser(ClientContext clientContext, List list, ListItem item) { Console.WriteLine("User selection skipped hence default user user1 is being selected\n Do you wish to continue Y/N"); string reselect = Console.ReadLine(); if (reselect != "Y" && reselect != "y" && reselect != "") return ByName(clientContext, list, item); else { string loginName = "i:0#.w|sharepoint\\user1"; User defaultUser = clientContext.Web.EnsureUser(loginName); clientContext.Load(defaultUser); clientContext.ExecuteQuery(); return defaultUser; } } }