From a33b9c4bd447af921180fbcff2c57e54bf907929 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 2 Oct 2024 17:00:35 +0200 Subject: [PATCH] Rimozione proj transfer (riportato in proj orig) --- .gitlab-ci.yml | 36 --- LiMan.Transfer/LiMan.Transfer.csproj | 36 --- LiMan.Transfer/NLog.config | 39 ---- LiMan.Transfer/Program.cs | 206 ------------------ LiMan.Transfer/README.md | 57 ----- LiMan.Transfer/README.pdf | Bin 66169 -> 0 bytes .../Resources/ChangeLog-original.html | 27 --- LiMan.Transfer/Resources/ChangeLog.html | 27 --- LiMan.Transfer/Resources/VersNum.txt | 1 - LiMan.Transfer/Resources/logoSteamware.png | Bin 3402 -> 0 bytes .../Resources/manifest-original.xml | 7 - LiMan.Transfer/Resources/manifest.xml | 7 - LiMan.Transfer/TicketDTO.cs | 75 ------- LiMan.Transfer/logs/.placeholder | 1 - LiMan.Transfer/post-build.ps1 | 32 --- LiMan.Transfer/utils.cs | 64 ------ 16 files changed, 615 deletions(-) delete mode 100644 LiMan.Transfer/LiMan.Transfer.csproj delete mode 100644 LiMan.Transfer/NLog.config delete mode 100644 LiMan.Transfer/Program.cs delete mode 100644 LiMan.Transfer/README.md delete mode 100644 LiMan.Transfer/README.pdf delete mode 100644 LiMan.Transfer/Resources/ChangeLog-original.html delete mode 100644 LiMan.Transfer/Resources/ChangeLog.html delete mode 100644 LiMan.Transfer/Resources/VersNum.txt delete mode 100644 LiMan.Transfer/Resources/logoSteamware.png delete mode 100644 LiMan.Transfer/Resources/manifest-original.xml delete mode 100644 LiMan.Transfer/Resources/manifest.xml delete mode 100644 LiMan.Transfer/TicketDTO.cs delete mode 100644 LiMan.Transfer/logs/.placeholder delete mode 100644 LiMan.Transfer/post-build.ps1 delete mode 100644 LiMan.Transfer/utils.cs diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8bbb571..78e6192 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -134,22 +134,6 @@ stages: # -------------------------------- # BUILD # -------------------------------- - -Transfer:build: - stage: build - tags: - - win - except: - - EgwAppControlCenter - variables: - SOL_NAME: LiMan - APP_NAME: LiMan.Transfer - before_script: - - *nuget-fix - - dotnet restore "$env:SOL_NAME.sln" - script: - - dotnet build $env:APP_NAME/$env:APP_NAME.csproj - EgwProxy.LiMan:build: stage: build tags: @@ -171,26 +155,6 @@ EgwProxy.LiMan:build: # -------------------------------- # DEPLOY # -------------------------------- - -Transfer:deploy: - stage: deploy - tags: - - win - except: - - EgwAppControlCenter - variables: - SOL_NAME: LiMan - APP_NAME: LiMan.Transfer - needs: ["Transfer:build"] - before_script: - - *nuget-fix - script: - - dotnet build $env:APP_NAME/$env:APP_NAME.csproj - - dotnet publish -p:PublishProfile=SingleFileX86.pubxml -p:RunCodeAnalysis=false -p:Configuration=Release $env:APP_NAME/$env:APP_NAME.csproj - - *zipper - - *hashBuild - - *nexusUpload - EgwProxy.LiMan:deploy: stage: deploy needs: ["EgwProxy.LiMan:build"] diff --git a/LiMan.Transfer/LiMan.Transfer.csproj b/LiMan.Transfer/LiMan.Transfer.csproj deleted file mode 100644 index 3dded52..0000000 --- a/LiMan.Transfer/LiMan.Transfer.csproj +++ /dev/null @@ -1,36 +0,0 @@ - - - - Exe - net6.0 - enable - enable - - - - - - - - - - - - - - - - - - - - Always - - - Always - - - - - - diff --git a/LiMan.Transfer/NLog.config b/LiMan.Transfer/NLog.config deleted file mode 100644 index 078feb9..0000000 --- a/LiMan.Transfer/NLog.config +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - diff --git a/LiMan.Transfer/Program.cs b/LiMan.Transfer/Program.cs deleted file mode 100644 index 7b0b38e..0000000 --- a/LiMan.Transfer/Program.cs +++ /dev/null @@ -1,206 +0,0 @@ -using Core; -using LiMan.Transfer; -using Newtonsoft.Json; -using NLog; -using RestSharp; -using RestSharp.Serializers.NewtonsoftJson; -using System; -using System.Diagnostics; -using static Core.Enum; - -namespace MyApp // Note: actual namespace depends on the project name. -{ - internal class Program - { - protected static string dataFolder = ""; - protected static string archFolder = ""; - protected static string reqName = "request.json"; - protected static int numDayKeep = 30; - protected static string apiUrl = "https://liman.egalware.com/ELM.Api/"; - - - /// - /// Classe logger - /// - public static Logger lg = LogManager.GetCurrentClassLogger(); - - static void Main(string[] args) - { - string myLine = "--------------------------------------"; - logInfo(myLine); - logInfo("LiMan data transfer"); - logInfo(myLine); - - //verifico di avere parametro x directory con contenuto... - if (args == null || args.Count() < 2) - { - logError("Warning: Missing args !!!"); - logError(""); - logError("Syntax: LiMan.Transfer.exe data_folder archive_folder"); - logError("data_folder: path to container for request.json file + *.zip file(s) to upload"); - logError("archive_folder: where to put trasferred data"); - logError(""); - } - else - { - // verifico primo parametro - dataFolder = args[0]; - archFolder = args[1]; - if (!Directory.Exists(dataFolder)) - { - logError("Error! data directory not found. Exiting"); - } - else - { - // quella archivio se non ci fosse la creo - if (!Directory.Exists(archFolder)) - { - Directory.CreateDirectory(archFolder); - } - - // cerco il file di conf x invio - string fileName = Path.Combine(dataFolder, reqName); - if (!File.Exists(fileName)) - { - logError("Missing conf file!"); - } - else - { - // deserializzo conf - logInfo($"Found file {fileName}"); - - Stopwatch stopWatch = new Stopwatch(); - stopWatch.Start(); - bool fatto = callTicketAndUpload(fileName); - TimeSpan ts = stopWatch.Elapsed; - if (fatto) - { - logInfo($"Upload done, {ts.TotalSeconds:0.000} sec"); - } - else - { - logError($"Error in upload, {ts.TotalSeconds:0.000} sec"); - } - - cleanupArchive(); - } - } - } - } - - private static void cleanupArchive() - { - logInfo("Start Archive cleanup"); - DateTime oggi = DateTime.Today; - var candidates = Directory.GetDirectories(archFolder); - foreach (var folder in candidates) - { - var currDir = new DirectoryInfo(folder); - if (currDir.CreationTime < oggi.AddDays(-numDayKeep)) - { - Directory.Delete(folder, true); - logInfo($"Folder deleted: {folder}"); - } - } - logInfo("Archive cleanup done!"); - } - - private static bool callTicketAndUpload(string fileName) - { - bool fatto = false; - try - { - // client chiamate rest - var client = new RestClient(apiUrl); - client.UseNewtonsoftJson(); - - SupportRequest? newSuppReq = new SupportRequest(); - string rawData = ""; - if (File.Exists(fileName)) - { - rawData = File.ReadAllText(fileName); - } - if (!string.IsNullOrEmpty(rawData)) - { - // fare: composizione richiesta da parametri chiave - newSuppReq = JsonConvert.DeserializeObject(rawData); - } - else - { - string hostName = utils.machineName; - string listIP = string.Join(", ", utils.machineIp); - // genero il ticket - newSuppReq = new SupportRequest() - { - CodApp = "Uploader", - CodImp = "", - CodInst = "EgalWare", - ContactEmail = "info@egalware.com", - ContactName = "Utente Generico", - ContactPhone = "035-460560", - MasterKey = "4AIc8fMEXcSyDIMl1Ro05O/1xar7nrVHXAQzrh/fmxfvlczA13tQwXAqida6hTqV", - ReqBody = $"File Upload - MISSING license file | machine: {utils.machineName} | IP: {listIP}", - Tipo = TipologiaTicket.FileUpload, - idxSubLic = 0 - }; - } - if (newSuppReq == null) - { - logError("Error: support request conf is null! cannot proceed"); - } - else - { - var ticketReq = new RestRequest("/api/ticket/sendReq", DataFormat.Json).AddJsonBody(newSuppReq); - - - var pUpd = Task.Run(async () => - { - var ticketResp = await client.PostAsync(ticketReq); - logInfo($"Received ticket {ticketResp.idxTicket}"); - // preparo richiesta x upload file - var fileUploadReq = new RestRequest("/api/filesave/single"); - fileUploadReq.AddParameter("ticketId", ticketResp.idxTicket); - // cerco OGNI file zip nella folder indicata... - var fileList = Directory.GetFiles(dataFolder, "*.zip"); - foreach (var file in fileList) - { - fileUploadReq.AddFile("file", file); - // ... infine INVIA file zip che li contiene... - var fileUploadResp = await client.PostAsync(fileUploadReq); - logInfo($"Upload {file} completed!"); - fileUploadReq.Files.Clear(); - } - - //var fileUploadResp = client.Post(fileUploadReq); - logInfo($"Uploaded {fileList.Count()} files"); - - // sposto folder in area archivio... - string destFolder = Path.Combine(archFolder, $"{DateTime.Now:yyyyMMdd_HHmmss}"); - Directory.Move(dataFolder, destFolder); - logInfo($"Requested folder archived in {destFolder}"); - - fatto = true; - }); - pUpd.Wait(); - } - } - catch (Exception exc) - { - logError($"Eccezione in fase gestione REST services{Environment.NewLine}{exc}"); - } - - return fatto; - } - - protected static void logInfo(string message) - { - lg.Info(message); - Console.WriteLine(message); - } - protected static void logError(string message) - { - lg.Error(message); - Console.WriteLine($"!!! {message}"); - } - } -} \ No newline at end of file diff --git a/LiMan.Transfer/README.md b/LiMan.Transfer/README.md deleted file mode 100644 index 83f1be4..0000000 --- a/LiMan.Transfer/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# LiMan.Transfer: Applicativo FIle Upload su LiMan - -Sintassi - -``` - LiMan.Transfer.exe data_folder archive_folder - - - data_folder: path to container for request.json file + *.zip file(s) to upload - - archive_folder: where to put trasferred data -``` - - -L'applicativo si occupa delal fase di - * generazione ticket richiesta invio - * invio singoli files ZIP su piattaforma - -E' necessario chiamarlo indicando 2 parametri: - * folder da trasferire - * deve contenere request.json - * deve contenere da 1+ files *.zip da inviare - * eventuali altri files saranno ignorati - * folder di archiviazione (i files inviati saranno mantenuti li per 30 gg) - - - -## File request.json -Per effettuare l'invio è necessario sia presente nella foller richiesta, oltre ai files zip da inviare, un file json denominato **request.json** così strutturato - -```json -{ - "CodApp": "Uploader", - "CodImp": "", - "CodInst": "EgalWare", - "ContactEmail": "info@egalware.com", - "ContactName": "Utente", - "ContactPhone": "035-460560", - "IdxSubLic": 0, - "MasterKey": "4AIc8fMEXcSyDIMl1Ro05O/1xar7nrVHXAQzrh/fmxfvlczA13tQwXAqida6hTqV", - "ReqBody": "Upload da sendlog di EGT BeamWall", - "Tipo": 2 -} -``` - -Descrizione campi - -Campo | Tipo | Descrizione ----------|----------|---------- - CodApp | STR | Nome dell'applicativo da LiMan (es Uploader, MAPO, GPW, STATS, EBW-UP) - CodImp | STR | Codice di impiego (user), lasciare "" - CodInst | STR | Codice del cliente, oppure EgalWare se invio "per applicativo" - ContactEmail | STR | email del richiedente - ContactName | STR | nome del richiedente - ContactPhone | STR | telefono cui contattare il richiedente - IdxSubLic | INT | Codice subLicenza (user) lasciare 0 - MasterKey | STR | Chiave licenza associata ad applicazione x comunicazione protetta, può essere unica x ogni TIPO di applicativo o a scelta x cliente/installazione. Ha una scadenza da LiMan - ReqBody | STR | Testo della richiesta, tipicamente popolato da utente tramite form oppure dal SW se invio in automatico ad evento - Tipo | INT | Lasciare fisso 2 (= file upload) diff --git a/LiMan.Transfer/README.pdf b/LiMan.Transfer/README.pdf deleted file mode 100644 index 9af0acb9d0ca0ce139a2ba7b9d01b7296284559f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66169 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 F|1Y1It9bwb diff --git a/LiMan.Transfer/Resources/ChangeLog-original.html b/LiMan.Transfer/Resources/ChangeLog-original.html deleted file mode 100644 index 0a14842..0000000 --- a/LiMan.Transfer/Resources/ChangeLog-original.html +++ /dev/null @@ -1,27 +0,0 @@ - - License Manager -

Versione: {{CURRENT-REL}}

-
- Note di rilascio: -
    -
  • - Ultime modifiche: -
      {{LAST-CHANGES}}
    -
  • -
  • - v.1.* → -
      -
    • Prima release dotnet5
    • -
    • Integrazione EFCore
    • -
    -
  • -
-
-
- -
- -
- \ No newline at end of file diff --git a/LiMan.Transfer/Resources/ChangeLog.html b/LiMan.Transfer/Resources/ChangeLog.html deleted file mode 100644 index bda1cef..0000000 --- a/LiMan.Transfer/Resources/ChangeLog.html +++ /dev/null @@ -1,27 +0,0 @@ - - License Manager -

Versione: 1.1.2410.0211

-
- Note di rilascio: -
    -
  • - Ultime modifiche: -
      {{LAST-CHANGES}}
    -
  • -
  • - v.1.* → -
      -
    • Prima release dotnet5
    • -
    • Integrazione EFCore
    • -
    -
  • -
-
-
- -
- -
- diff --git a/LiMan.Transfer/Resources/VersNum.txt b/LiMan.Transfer/Resources/VersNum.txt deleted file mode 100644 index 72ab761..0000000 --- a/LiMan.Transfer/Resources/VersNum.txt +++ /dev/null @@ -1 +0,0 @@ -1.1.2410.0211 diff --git a/LiMan.Transfer/Resources/logoSteamware.png b/LiMan.Transfer/Resources/logoSteamware.png deleted file mode 100644 index 0958b50a1ee7f6a934e26cf55e2335d4cea6aa82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3402 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 diff --git a/LiMan.Transfer/Resources/manifest-original.xml b/LiMan.Transfer/Resources/manifest-original.xml deleted file mode 100644 index f95e076..0000000 --- a/LiMan.Transfer/Resources/manifest-original.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - 1.0.0.0 - https://nexus.steamware.net/repository/SWS/{{DIRNAME}}/{{BRANCHNAME}}/{{PACKNAME}}.zip - https://nexus.steamware.net/repository/SWS/{{DIRNAME}}/{{BRANCHNAME}}/ChangeLog.html - false - diff --git a/LiMan.Transfer/Resources/manifest.xml b/LiMan.Transfer/Resources/manifest.xml deleted file mode 100644 index f86e955..0000000 --- a/LiMan.Transfer/Resources/manifest.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - 1.1.2410.0211 - https://nexus.steamware.net/repository/SWS/LiMan/stable/LAST/LiMan.Transfer.zip - https://nexus.steamware.net/repository/SWS/LiMan/stable/LAST/ChangeLog.html - false - diff --git a/LiMan.Transfer/TicketDTO.cs b/LiMan.Transfer/TicketDTO.cs deleted file mode 100644 index 1d13559..0000000 --- a/LiMan.Transfer/TicketDTO.cs +++ /dev/null @@ -1,75 +0,0 @@ -using static Core.Enum; - -namespace Core -{ - public class TicketDTO - { - #region Public Properties - - /// - /// Codice univoco della sub licenza (opzionale) - /// - public string codImpiego { get; set; } = ""; - - /// - /// Contatto email del cliente richiedente - /// - public string contactEmail { get; set; } = ""; - - /// - /// Contatto del cliente richiedente - /// - public string contactName { get; set; } = ""; - - /// - /// Contatto telefonico del cliente richiedente - /// - public string contactPhone { get; set; } = ""; - - public DateTime dtReq { get; set; } = DateTime.Now; - - /// - /// IDX licenza master - /// - public int idxLic { get; set; } = 0; - - /// - /// IDX licenza child (opzionale) - /// - public int idxSubLic { get; set; } = 0; - - public int idxTicket { get; set; } = 0; - - /// - /// Motivazione della richiesta - /// - public string reqBody { get; set; } = ""; - - /// - /// Stato richiesta - /// - public StatoRichiesta status { get; set; } = StatoRichiesta.ND; - - /// - /// Risposta alla richiesta - /// - public string supplAnsw { get; set; } = ""; - - /// - /// Email del responsabile dell'azione (interno - supplier) - /// - public string supplEmail { get; set; } = ""; - - /// - /// Cod dell'user responsabile dell'azione (interno - supplier) - /// - public string supplUserCode { get; set; } = ""; - - /// - /// Tipologia di licenza gestita - /// - public TipoLicenza tipo { get; set; } = TipoLicenza.UserKey; - - #endregion Public Properties - } -} \ No newline at end of file diff --git a/LiMan.Transfer/logs/.placeholder b/LiMan.Transfer/logs/.placeholder deleted file mode 100644 index 5f28270..0000000 --- a/LiMan.Transfer/logs/.placeholder +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/LiMan.Transfer/post-build.ps1 b/LiMan.Transfer/post-build.ps1 deleted file mode 100644 index b510ccd..0000000 --- a/LiMan.Transfer/post-build.ps1 +++ /dev/null @@ -1,32 +0,0 @@ -param([string]$ProjectDir, [string]$ProjectPath); - -$FileMajMin = "..\MajMin.vers" -$FileVers = "Resources\VersNum.txt" -$FileManIn = "Resources\manifest-original.xml" -$FileManOut = "Resources\manifest.xml" -$FileCLogIn = "Resources\ChangeLog-original.html" -$FileCLogOut = "Resources\ChangeLog.html" -$MajMin = Get-Content $FileMajMin # "6.14." -$currentDate = get-date -format yyMM; -$currentTime = get-date -format ddHH; -$find = "(.|\n)*?"; -$currRelNum = $MajMin + $currentDate +"." + $currentTime -$replace = "" + $MajMin + $currentDate +"." + $currentTime + ""; -$csproj = Get-Content $ProjectPath -$csprojUpdated = $csproj -replace $find, $replace - -Set-Content -Path $ProjectPath -Value $csprojUpdated -Set-Content -Path $FileVers -Value $currRelNum - -# replace x manifest -$manData = Get-Content $FileManIn -$manData = $manData -replace "1.0.0.0", $currRelNum -$manData = $manData -replace "{{DIRNAME}}", "LiMan" -$manData = $manData -replace "{{BRANCHNAME}}", "stable/LAST" -$manData = $manData -replace "{{PACKNAME}}", "LiMan.Transfer" -Set-Content -Path $FileManOut -Value $manData - -# replace x ChangeLog -$clogData = Get-Content $FileCLogIn -$clogData = $clogData -replace "{{CURRENT-REL}}", $currRelNum -Set-Content -Path $FileCLogOut -Value $clogData diff --git a/LiMan.Transfer/utils.cs b/LiMan.Transfer/utils.cs deleted file mode 100644 index d617446..0000000 --- a/LiMan.Transfer/utils.cs +++ /dev/null @@ -1,64 +0,0 @@ -using NLog; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Text; -using System.Threading.Tasks; - -namespace LiMan.Transfer -{ - public class utils - { - /// - /// Classe logger - /// - public static Logger lg = LogManager.GetCurrentClassLogger(); - /// - /// Effettua logging INFO corretto impostanto anche la variabile IOB prima di scrivere... - /// - /// - public static void lgInfo(string txt2log) - { - lg.Info(txt2log); - } - /// - /// Effettua logging ERROR corretto impostanto anche la variabile IOB prima di scrivere... - /// - /// - public static void lgError(string txt2log) - { - lg.Error(txt2log); - } - - public static string machineName - { - get - { - return Dns.GetHostName(); - } - } - - public static List machineIp - { - get - { - List ipList = new List(); - try - { - IPAddress[] ipAddresses = Dns.GetHostAddresses(machineName); - foreach (var ip in ipAddresses) - { - ipList.Add($"{ip}"); - } - } - catch (Exception exc) - { - // Machine not found... - lgError($"Eccezione in recupero MachineIp{Environment.NewLine}{exc}"); - } - return ipList; - } - } - } -}