update na novi server

This commit is contained in:
David Štaleker
2025-02-26 10:24:36 +01:00
parent 34a081e8f9
commit 4c066cbdc8

View File

@@ -39,6 +39,22 @@ namespace InfosysPublisher
public string Path { get; set; } public string Path { get; set; }
} }
public class SftpServerData(
string sftpServerAddress,
int sftpPort,
string sftpUsername,
string sftpPassword,
string path,
string sftpArchivePath)
{
internal string SftpServerAddress { get; } = sftpServerAddress;
internal int SftpPort { get; } = sftpPort;
internal string SftpUsername { get; } = sftpUsername;
internal string SftpPassword { get; } = sftpPassword;
internal string Path { get; } = path;
internal string SftpArchivePath { get; } = sftpArchivePath;
}
#endregion #endregion
private string _projectPath; private string _projectPath;
@@ -49,12 +65,18 @@ namespace InfosysPublisher
private string _selectedProjectVersion = ""; private string _selectedProjectVersion = "";
private string _selectedProjectGuid = ""; private string _selectedProjectGuid = "";
private static readonly string SftpServerAddress = "192.168.111.75"; //private static readonly string SftpServerAddress = "192.168.111.75";
private static readonly int SftpPort = 300; //private static readonly int SftpPort = 300;
private static readonly string SftpUsername = "InfosysUpdate"; //private static readonly string SftpUsername = "InfosysUpdate";
private static readonly string SftpPassword = "v&H6c$wTbTkgSgdWvL*8k$st3#z5X"; //private static readonly string SftpPassword = "v&H6c$wTbTkgSgdWvL*8k$st3#z5X";
private const string SftpArchivePath = "Archive"; //private const string SftpArchivePath = "Archive";
private static readonly List<SftpServerData> _sftpServers =
[
new ("sftp2.infosys.si", 22, "is-admin", "4&Xt6x7hX3f#yZ", "", "archive"),
new ("192.168.111.75", 300, "InfosysUpdate", "v&H6c$wTbTkgSgdWvL*8k$st3#z5X", "", "Archive"),
];
public WinMain() public WinMain()
{ {
InitializeComponent(); InitializeComponent();
@@ -261,9 +283,9 @@ namespace InfosysPublisher
return; return;
} }
TbOutput.Text = $"Publish start {DateTime.Now:dd.MM.yyyy HH:mm:ss}"; TbOutput.Text = $"{DateTime.Now:dd.MM.yyyy HH:mm:ss}> Publish start";
TbOutput.Text += $"\nClean {DateTime.Now:dd.MM.yyyy HH:mm:ss}"; TbOutput.Text += $"\n{DateTime.Now:dd.MM.yyyy HH:mm:ss}> Clean";
GridProgress.Visibility = Visibility.Visible; GridProgress.Visibility = Visibility.Visible;
LblLoading.Content = $"Čiščenje mape {releaseFolder}"; LblLoading.Content = $"Čiščenje mape {releaseFolder}";
await Task.Run(() => await Task.Run(() =>
@@ -281,7 +303,7 @@ namespace InfosysPublisher
}); });
LblLoading.Content = $"Rebuild {_selectedProject.Path}"; LblLoading.Content = $"Rebuild {_selectedProject.Path}";
TbOutput.Text += $"\nRebuild {_selectedProject.Path} {DateTime.Now:dd.MM.yyyy HH:mm:ss}"; TbOutput.Text += $"\n{DateTime.Now:dd.MM.yyyy HH:mm:ss}> Rebuild {_selectedProject.Path}";
var output = ""; var output = "";
await Task.Run(() => await Task.Run(() =>
{ {
@@ -309,7 +331,7 @@ namespace InfosysPublisher
var zipDirectory = new DirectoryInfo(releaseFolder).Parent?.FullName ?? ""; var zipDirectory = new DirectoryInfo(releaseFolder).Parent?.FullName ?? "";
var zipPath = Path.Combine(zipDirectory, "Package.zip"); var zipPath = Path.Combine(zipDirectory, "Package.zip");
LblLoading.Content = $"Zip {zipPath}"; LblLoading.Content = $"Zip {zipPath}";
TbOutput.Text += $"\nZip {zipPath} {DateTime.Now:dd.MM.yyyy HH:mm:ss}"; TbOutput.Text += $"\n{DateTime.Now:dd.MM.yyyy HH:mm:ss}> Zip {zipPath}";
if (File.Exists(zipPath)) if (File.Exists(zipPath))
File.Delete(zipPath); File.Delete(zipPath);
@@ -318,18 +340,20 @@ namespace InfosysPublisher
ZipFile.CreateFromDirectory(releaseFolder, zipPath, CompressionLevel.Optimal, false); ZipFile.CreateFromDirectory(releaseFolder, zipPath, CompressionLevel.Optimal, false);
}); });
UploadSftp(zipDirectory, zipPath); LblLoading.Content = $"Upload to SFTP";
await UploadSftp(zipDirectory, zipPath);
TbOutput.Text += $"\nVersion {_selectedProjectVersion} {DateTime.Now:dd.MM.yyyy HH:mm:ss}"; LblLoading.Content = $"Version";
TbOutput.Text += $"\n{DateTime.Now:dd.MM.yyyy HH:mm:ss}> Version {_selectedProjectVersion}";
WriteVersion(); WriteVersion();
GridProgress.Visibility = Visibility.Hidden; GridProgress.Visibility = Visibility.Hidden;
LblLoading.Content = ""; LblLoading.Content = "";
TbOutput.Text += $"\nEnd {DateTime.Now:dd.MM.yyyy HH:mm:ss}"; TbOutput.Text += $"\n{DateTime.Now:dd.MM.yyyy HH:mm:ss}> End";
} }
private async void UploadSftp(string zipDirectory, string zipPath) private async Task UploadSftp(string zipDirectory, string zipPath)
{ {
if (ChbCreateOnlyZip.IsChecked != null && (bool)ChbCreateOnlyZip.IsChecked) if (ChbCreateOnlyZip.IsChecked != null && (bool)ChbCreateOnlyZip.IsChecked)
{ {
@@ -339,21 +363,23 @@ namespace InfosysPublisher
//InfosysUpdate //InfosysUpdate
//v&H6c$wTbTkgSgdWvL*8k$st3#z5X //v&H6c$wTbTkgSgdWvL*8k$st3#z5X
LblLoading.Content = $"Upload to SFTP";
TbOutput.Text += $"\nUpload to SFTP {DateTime.Now:dd.MM.yyyy HH:mm:ss}";
var error = ""; var error = "";
foreach(var sftpServer in _sftpServers)
{
LblLoading.Content = $"Upload to SFTP: {sftpServer.SftpServerAddress}";
TbOutput.Text += $"\n{DateTime.Now:dd.MM.yyyy HH:mm:ss}> Upload to SFTP {sftpServer.SftpServerAddress}";
await Task.Run(() => await Task.Run(() =>
{ {
try try
{ {
using var sftpClient = new SftpClient(SftpServerAddress, SftpPort, SftpUsername, SftpPassword); using var sftpClient = new SftpClient(sftpServer.SftpServerAddress, sftpServer.SftpPort, sftpServer.SftpUsername, sftpServer.SftpPassword);
sftpClient.Connect(); sftpClient.Connect();
if (!sftpClient.Exists(_selectedProjectPublishLocation)) if (!sftpClient.Exists(_selectedProjectPublishLocation))
sftpClient.CreateDirectory(_selectedProjectPublishLocation); sftpClient.CreateDirectory(_selectedProjectPublishLocation);
if (!sftpClient.Exists(SftpArchivePath)) if (!sftpClient.Exists(sftpServer.SftpArchivePath))
sftpClient.CreateDirectory(SftpArchivePath); sftpClient.CreateDirectory(sftpServer.SftpArchivePath);
var files = sftpClient.ListDirectory(_selectedProjectPublishLocation).ToList(); var files = sftpClient.ListDirectory(_selectedProjectPublishLocation).ToList();
var xmlVersion = ""; var xmlVersion = "";
@@ -393,7 +419,7 @@ namespace InfosysPublisher
if (xmlVersion != "") if (xmlVersion != "")
{ {
var projectArchive = SftpArchivePath + "/" + _selectedProjectPublishLocation; var projectArchive = sftpServer.SftpArchivePath + "/" + _selectedProjectPublishLocation;
if (!sftpClient.Exists(projectArchive)) if (!sftpClient.Exists(projectArchive))
sftpClient.CreateDirectory(projectArchive); sftpClient.CreateDirectory(projectArchive);
@@ -425,15 +451,13 @@ namespace InfosysPublisher
<Version>{_selectedProjectVersion}</Version> <Version>{_selectedProjectVersion}</Version>
</Update>"; </Update>";
File.WriteAllText(tmpXmlFileUpload, xml); File.WriteAllText(tmpXmlFileUpload, xml);
using (var fileStream = new FileStream(tmpXmlFileUpload, FileMode.Open))
{ var genPublishLocation = _selectedProjectPublishLocation + "/" + "Package.zip";
sftpClient.UploadFile(fileStream, _selectedProjectPublishLocation + "/" + "Update.xml", var genPublishLocationTmp = _selectedProjectPublishLocation + "/" + "Package_tmp.zip";
true);
}
using (var fileStream = new FileStream(zipPath, FileMode.Open)) using (var fileStream = new FileStream(zipPath, FileMode.Open))
{ {
sftpClient.UploadFile(fileStream, _selectedProjectPublishLocation + "/" + "Package.zip", sftpClient.UploadFile(fileStream, genPublishLocationTmp,
true); true);
} }
@@ -442,9 +466,28 @@ namespace InfosysPublisher
if (!sftpClient.Exists(sftpDirVersion)) if (!sftpClient.Exists(sftpDirVersion))
sftpClient.CreateDirectory(sftpDirVersion); sftpClient.CreateDirectory(sftpDirVersion);
var versionPublishLocation = sftpDirVersion + "/" + "Package.zip";
var versionPublishLocationTmp = sftpDirVersion + "/" + "Package_tmp.zip";
using (var fileStream = new FileStream(zipPath, FileMode.Open)) using (var fileStream = new FileStream(zipPath, FileMode.Open))
{ {
sftpClient.UploadFile(fileStream, sftpDirVersion + "/" + "Package.zip", sftpClient.UploadFile(fileStream, versionPublishLocationTmp,
true);
}
if (sftpClient.Exists(genPublishLocation))
sftpClient.DeleteFile(genPublishLocation);
if (sftpClient.Exists(versionPublishLocation))
sftpClient.DeleteFile(versionPublishLocation);
sftpClient.RenameFile(genPublishLocationTmp, genPublishLocation);
sftpClient.RenameFile(versionPublishLocationTmp, versionPublishLocation);
//XML na koncu
using (var fileStream = new FileStream(tmpXmlFileUpload, FileMode.Open))
{
sftpClient.UploadFile(fileStream, _selectedProjectPublishLocation + "/" + "Update.xml",
true); true);
} }
@@ -457,6 +500,9 @@ namespace InfosysPublisher
error += ex.ToString(); error += ex.ToString();
} }
}); });
}
if (error != "") if (error != "")
{ {
MessageBox.Show(error); MessageBox.Show(error);