コード例 #1
0
        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();
        }