public static OutboundFileResendAudit SaveOutboundFileResendDetailsInDB(OutboundFileResendViewModel fileResendViewModel, string fileName, string archiveLocation, string targetLocation) { OutboundFileResendAudit outboundDetails = new OutboundFileResendAudit(); foreach (var item in fileResendViewModel.resendSelectedArchiveFiles) { if (item.ToLower() == fileName.ToLower()) { outboundDetails.AccountId = fileResendViewModel.accountId; outboundDetails.AccountName = fileResendViewModel.accountName; outboundDetails.DatasetId = fileResendViewModel.datasetId; string tempFileDate = item.Substring(0, item.LastIndexOf('_')); tempFileDate = tempFileDate.Substring(tempFileDate.LastIndexOf('_') + 1); tempFileDate = tempFileDate.Substring(0, 4) + "/" + tempFileDate.Substring(4, 2) + "/" + tempFileDate.Substring(6, 2); string tempFileTime = item.Substring(item.LastIndexOf('_') + 1); tempFileTime = tempFileTime.Substring(0, tempFileTime.LastIndexOf('.')); //checking whether time part exist in the file name before substring if (tempFileTime.Length == 8) { tempFileTime = tempFileTime.Substring(0, 2) + ":" + tempFileTime.Substring(3, 2) + ":" + tempFileTime.Substring(6, 2); tempFileDate = tempFileDate + " " + tempFileTime; } else { tempFileDate = null; } DateTime checkFileDate; if (DateTime.TryParse(tempFileDate, out checkFileDate)) { outboundDetails.ArchivalDate = Convert.ToDateTime(tempFileDate); } else { outboundDetails.ArchivalDate = null; } outboundDetails.FileName = item; outboundDetails.ArchiveLocation = archiveLocation; outboundDetails.OutboundLocation = targetLocation; outboundDetails.CreatedDate = DateTime.Now; outboundDetails.CreatedBy = fileResendViewModel.createdBy; } } return(outboundDetails); }
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);; }