protected override void BeginProcessing() { //Create mappings from database to sharepoint fields ISharePointUploader uploader = new SharePointUploader(Session.DomainUserName, Session.DomainPassword, Session.BaseSharePointUrl); var mappings = Session.Mappings; Session.ErroredFiles = new Dictionary<string, string>(); Session.SkippedFiles = new List<string>(); //Get database data (collection of DBRecords) var sql = Session.SelectStatement; var sm = new SQLManager(Session.DBConnectionString); var records = sm.GetData(sql, Session.FileNameField).ToSPDataRecords(mappings); var filenameList = Directory.EnumerateFiles(Session.LocalFolder).Select(p=>Path.GetFileName(p)).ToList<string>(); bool recordFoundFlag = false; //Uploader functionality foreach (var filename in filenameList) { if(IsRecordAvailable(records, filename)) { var record = records.Single(p => p.FileName.Equals(filename, StringComparison.InvariantCultureIgnoreCase)); //handle the uploading Console.WriteLine(string.Format("Uploading File {0} at {1} - {2}", filename, DateTime.Now, "with Metadata")); try { uploader.UploadFile(Session.LocalFolder, record, Session.LibraryTitle, Session.ContentType, Session.OverwriteIfExists); MoveToUploaded(Session.LocalFolder, filename); } catch (Exception ex) { HandleError(ex.Message, filename); } } else { Session.ErroredFiles.Add(filename, "No Metadata found"); //Console.WriteLine(string.Format("Uploading File {0} at {1} - {2}", filename, DateTime.Now, "NO Metadata found.")); //try //{ // uploader.UploadFile(Session.LocalFolder, filename, Session.LibraryTitle, Session.ContentType); //} //catch (Exception ex2) //{ // HandleError(ex2.Message, filename); //} } } WriteObject(Session); base.BeginProcessing(); }