diff --git a/EgwProxy.MagMan/DTO/ProjectProgDTO.cs b/EgwProxy.MagMan/DTO/ProjectProgrDTO.cs similarity index 95% rename from EgwProxy.MagMan/DTO/ProjectProgDTO.cs rename to EgwProxy.MagMan/DTO/ProjectProgrDTO.cs index 82eec64..67f98a7 100644 --- a/EgwProxy.MagMan/DTO/ProjectProgDTO.cs +++ b/EgwProxy.MagMan/DTO/ProjectProgrDTO.cs @@ -9,7 +9,7 @@ namespace EgwProxy.MagMan.DTO // // This is here so CodeMaid doesn't reorganize this document // - public class ProjectProgDTO + public class ProjectProgrDTO { /// diff --git a/EgwProxy.MagMan/DataSyncro.cs b/EgwProxy.MagMan/DataSyncro.cs index bbbc5de..c727060 100644 --- a/EgwProxy.MagMan/DataSyncro.cs +++ b/EgwProxy.MagMan/DataSyncro.cs @@ -716,8 +716,9 @@ namespace EgwProxy.MagMan } /// - /// Invio record Proj x upsert record da inviare + /// Invio record Proj x upsert /// + /// record da inviare /// ProjCloudId (essitente o nuovo) public int ProjectSend(ProjectDTO rec2send) { @@ -748,9 +749,9 @@ namespace EgwProxy.MagMan } /// - /// Versione async Invio elenco di RawItems associati ad un singolo materiale, il server - /// farà il merge record da inviare + /// Versione async Invio Proj x upsert /// + /// record da inviare public async Task ProjectSendAsync(ProjectDTO rec2send) { int answ = 0; @@ -779,6 +780,72 @@ namespace EgwProxy.MagMan return await Task.FromResult(answ); } + + /// + /// Invio record ProjProg x aggiornamento stato + /// + /// record da inviare + /// ProjCloudId (essitente o nuovo) + public bool ProjectProgrSend(ProjectProgrDTO rec2send) + { + bool answ = false; + // cerco online + using (RestClient client = new RestClient(rcOptions)) + { + string MKeyEnc = HttpUtility.UrlEncode(RestToken); + // impacchetto dati x invio... + RestPayload.ProdInfoData newPayload = new RestPayload.ProdInfoData() + { + ProjectProgress = rec2send + }; + var jsonBody = JsonConvert.SerializeObject(newPayload); + var request = new RestRequest($"Projects/prod-update/{MKeyEnc}", Method.Post).AddJsonBody(jsonBody); + var response = client.Post(request); + // controllo risposta + if (response.StatusCode == HttpStatusCode.OK) + { + bool.TryParse(response.Content, out answ); + } + else + { + Log.Error($"ProjectProgrSend | Response StatusCode: {response.StatusCode} | content: {response.Content}"); + } + } + return answ; + } + + /// + /// Versione async Invio record ProjProg x aggiornamento stato + /// + /// record da inviare + public async Task ProjectProgrSendAsync(ProjectProgrDTO rec2send) + { + bool answ = false; + // cerco online + using (RestClient client = new RestClient(rcOptions)) + { + string MKeyEnc = HttpUtility.UrlEncode(RestToken); + // impacchetto dati x invio... + RestPayload.ProdInfoData newPayload = new RestPayload.ProdInfoData() + { + ProjectProgress = rec2send + }; + var jsonBody = JsonConvert.SerializeObject(newPayload); + var request = new RestRequest($"Projects/prod-update/{MKeyEnc}", Method.Post).AddJsonBody(jsonBody); + var response = await client.PostAsync(request); + // controllo risposta + if (response.StatusCode == HttpStatusCode.OK) + { + bool.TryParse(response.Content, out answ); + } + else + { + Log.Error($"ProjectProgrSendAsync | Response StatusCode: {response.StatusCode} | content: {response.Content}"); + } + } + return await Task.FromResult(answ); + } + /// /// Verifica elenco di risorse associate ad un progetto /// diff --git a/EgwProxy.MagMan/EgwProxy.MagMan.csproj b/EgwProxy.MagMan/EgwProxy.MagMan.csproj index 40daf1d..fe12498 100644 --- a/EgwProxy.MagMan/EgwProxy.MagMan.csproj +++ b/EgwProxy.MagMan/EgwProxy.MagMan.csproj @@ -87,6 +87,7 @@ + diff --git a/EgwProxy.MagMan/RestPayload.cs b/EgwProxy.MagMan/RestPayload.cs index 17cf11d..5e180d2 100644 --- a/EgwProxy.MagMan/RestPayload.cs +++ b/EgwProxy.MagMan/RestPayload.cs @@ -77,6 +77,14 @@ namespace EgwProxy.MagMan #endregion Public Properties } + public class ProdInfoData + { + #region Public Properties + + public ProjectProgrDTO ProjectProgress { get; set; } + + #endregion Public Properties + } public class Resources {