public static int CopyArchiveFiles(AppSettings appSettings, string HostName, int Port, string UserName, string Password, string PrivateKey, string TargetLocation, OutboundFileResendViewModel outboundFileResendViewModel, string interfaceType)
        {
            List <string>                  failedFiles         = new List <string>();
            OutboundFileResendAudit        record              = new OutboundFileResendAudit();
            List <OutboundFileResendAudit> outboundFileDALData = new List <OutboundFileResendAudit>();

            try
            {
                foreach (string filename in outboundFileResendViewModel.resendSelectedArchiveFiles)
                {
                    try
                    {
                        byte[] bytes = null;
                        string defaulSftpArchiveLoction = appSettings.Archival_Location["DefaultLocation"] + "/" + outboundFileResendViewModel.datasetId;
                        string Loactiontype             = appSettings.Archival_Location["Location"];
                        if (Loactiontype == "SFTP")
                        {
                            bytes = ReadFileFromSFTP(appSettings, defaulSftpArchiveLoction + "/" + filename);
                        }
                        else if (Loactiontype == "FTP")
                        {
                            bytes = ReadFileFromFTP(appSettings, defaulSftpArchiveLoction + "/" + filename);
                        }
                        else if (Loactiontype == "LOCAL NETWORK")
                        {
                            bytes = ImpersonationHelper.ReadLocalNetworkFile(appSettings.Archival_Location["Username"], appSettings.Archival_Location["Password"], @"//" + appSettings.Archival_Location["Hostname"] + defaulSftpArchiveLoction + "/" + filename);
                        }
                        bool fileCopied = false;
                        if (bytes != null)
                        {
                            if (interfaceType == "SFTP")
                            {
                                fileCopied = WriteFileToSFTP(HostName, Port, UserName, Cryptography.Decrypt(Password, PrivateKey), TargetLocation + "/" + filename, bytes);
                            }
                            else if (interfaceType == "FTP")
                            {
                                fileCopied = WriteFileToFTP(HostName, Port, UserName, Cryptography.Decrypt(Password, PrivateKey), TargetLocation + "/" + filename, bytes);
                            }
                            else if (interfaceType == "LOCAL NETWORK")
                            {
                                fileCopied = ImpersonationHelper.WriteLocalNetworkFile(UserName, Cryptography.Decrypt(Password, PrivateKey), @"//" + HostName + TargetLocation + "/" + filename, bytes);
                            }
                        }
                        if (fileCopied)
                        {
                            record = SaveOutboundFileResendDetailsInDB(outboundFileResendViewModel, filename, defaulSftpArchiveLoction, TargetLocation);
                            outboundFileDALData.Add(record);
                        }
                        else
                        {
                            failedFiles.Add(filename);
                        }
                    }
                    catch (Exception)
                    {
                        //for failed files
                        failedFiles.Add(filename);
                    }
                }
                if (outboundFileDALData.Count > 0)
                {
                    _outgestionFileResendDAL.CreateOutboundResendAudit(outboundFileDALData);
                }
            }
            catch (Exception e) {
            }
            return(failedFiles.Count);;
        }