private void CopyAttachment(List _srcLst, List _dList, int _itemID, string _folder)
        {
            string _tmpfolder = "";

            if (String.IsNullOrEmpty(StartingFolder))
            {
                _tmpfolder = _folder.Replace((_srcLst.RootFolder.ServerRelativeUrl), _dList.RootFolder.ServerRelativeUrl);
            }
            else
            {
                string _tmpSeed = _dList.RootFolder.ServerRelativeUrl + "/" + StartingFolder;
                _tmpfolder = _folder.Replace((_srcLst.RootFolder.ServerRelativeUrl), _tmpSeed);
            }

            LogVerbose("Copying: Items in " + _itemID + " To " + _tmpfolder);
            LogVerbose("Source file: " + _srcLst.RootFolder.ServerRelativeUrl + "/Attachments/" + _itemID);

            try
            {
                Folder _aFolder = this.ClientContext.Web.GetFolderByServerRelativeUrl(_srcLst.RootFolder.ServerRelativeUrl + "/Attachments/" + _itemID);
                try
                {
                    this.ClientContext.Load(_aFolder);
                    this.ClientContext.ExecuteQuery();
                }
                catch (ServerException ex)
                {
                    LogError(ex, "No attachments for ListItem {0}", ex.Message);
                    LogWarning("No Attachment for ID {0}", _itemID);
                    return;
                }


                FileCollection _files = _aFolder.Files;
                this.ClientContext.Load(_files);
                this.ClientContext.ExecuteQuery();

                foreach (var _file in _files)
                {
                    try
                    {
                        string _tmpFileName = HelperExtensions.GetCleanFileName(_file.Name);
                        string url          = _tmpfolder + "/" + _tmpFileName;

                        LogVerbose("Filename: " + _file.Name);
                        if (this.ShouldProcess(string.Format("Will upload local file {0} to url {1}", _file.Name, url)))
                        {
                            LogVerbose("_tmpfolder: {0} _tmpFileName: {1} with new file url: {2}" + _tmpfolder, _tmpFileName, url);
                            var fileRelativeUrl  = _file.ServerRelativeUrl.ToString();
                            var fileNameFromInfo = System.IO.Path.GetFileName(fileRelativeUrl);
                            var doclibfilename   = string.Format("{0}\\{1}", _resultLogDirectory, fileNameFromInfo);

                            // read file from attachment pool
                            FileInformation fileInfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(this.ClientContext, fileRelativeUrl);
                            this.ClientContext.ExecuteQueryRetry();

                            // write binary to file
                            using (var fileStream = new System.IO.FileStream(doclibfilename, System.IO.FileMode.Create))
                            {
                                fileInfo.Stream.CopyTo(fileStream);
                            }

                            // read file from disk into memorystream and upload
                            using (var ms = new System.IO.MemoryStream(System.IO.File.ReadAllBytes(doclibfilename)))
                            {
                                Microsoft.SharePoint.Client.File.SaveBinaryDirect(this.ClientContext, url, ms, false);
                                this.ClientContext.ExecuteQuery();
                            }

                            Thread.Sleep(500);
                        }
                    }
                    catch (Exception e)
                    {
                        LogError(e, ">>>>>> {0}", e.Message);
                    }
                }
            }
            catch (Exception e)
            {
                LogError(e, ">>>>>> copyAttachment - {0}", e.Message);
            }
        }