Version Error Message Tests passed mesfs.infineon.com Infineon.EAF.Runtime 2.49.3 pool name Kanban net8.0 v2_52_0-Tests editorconfig yml ec fix yml explicit contents dotnet_diagnostic Removed Open Insight API IFX Directory Removed Open Insight API IFX Directory from Save CA1862 and GetWeekOfYear for WritePDSF gitignore cellInstanceVersion.EdaConnection.PortNumber Removed Open Insight API IFX Directory from Save Added Climatec to Test.cs GetJobIdDirectory Remove and 5-Other-Small NETFRAMEWORK mesfs.infineon.com Infineon.EAF.Runtime 2.49.3 pool name Kanban
111 lines
4.7 KiB
C#
111 lines
4.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Net.Http;
|
|
using System.Text;
|
|
using System.Text.Json;
|
|
|
|
namespace Adaptation.Shared.Metrology;
|
|
|
|
public partial class WS
|
|
{
|
|
|
|
public static (string, Results) SendData(string url, long sequence, string directory, object payload, int timeoutSeconds = 120)
|
|
{
|
|
Results results = new();
|
|
string resultsJson = string.Empty;
|
|
try
|
|
{
|
|
string json = JsonSerializer.Serialize(payload, payload.GetType());
|
|
if (string.IsNullOrEmpty(url) || !url.Contains(":") || !url.Contains("."))
|
|
throw new Exception("Invalid URL");
|
|
using (HttpClient httpClient = new())
|
|
{
|
|
httpClient.Timeout = new TimeSpan(0, 0, 0, timeoutSeconds, 0);
|
|
HttpRequestMessage httpRequestMessage = new()
|
|
{
|
|
RequestUri = new Uri(url),
|
|
Method = HttpMethod.Post,
|
|
Content = new StringContent(json, Encoding.UTF8, "application/json")
|
|
};
|
|
HttpResponseMessage httpResponseMessage = httpClient.SendAsync(httpRequestMessage, HttpCompletionOption.ResponseContentRead).Result;
|
|
resultsJson = httpResponseMessage.Content.ReadAsStringAsync().Result;
|
|
results = JsonSerializer.Deserialize<Results>(resultsJson, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
|
|
string checkDirectory = Path.Combine(directory, $"-{results.HeaderID}");
|
|
if (!Directory.Exists(checkDirectory))
|
|
_ = Directory.CreateDirectory(checkDirectory);
|
|
File.WriteAllText(Path.Combine(checkDirectory, $"{sequence}.json"), json);
|
|
}
|
|
if (!results.Success)
|
|
results.Errors.Add(results.ToString());
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Exception exception = e;
|
|
StringBuilder stringBuilder = new();
|
|
while (exception is not null)
|
|
{
|
|
_ = stringBuilder.AppendLine(exception.Message);
|
|
exception = exception.InnerException;
|
|
}
|
|
results.Errors ??= new List<string>();
|
|
results.Errors.Add(resultsJson);
|
|
results.Errors.Add(stringBuilder.ToString());
|
|
}
|
|
return new(resultsJson, results);
|
|
}
|
|
|
|
public static void AttachFile(string url, Attachment attachment, int timeoutSeconds = 60)
|
|
{
|
|
using HttpClient httpClient = new();
|
|
string json = JsonSerializer.Serialize(attachment);
|
|
httpClient.Timeout = new TimeSpan(0, 0, 0, timeoutSeconds, 0);
|
|
StringContent httpContent = new(json, Encoding.UTF8, "application/json");
|
|
HttpResponseMessage httpResponseMessage = httpClient.PostAsync($"{url}/attachment", httpContent).Result;
|
|
if (!httpResponseMessage.IsSuccessStatusCode)
|
|
{
|
|
string resultBody = httpResponseMessage.Content.ReadAsStringAsync().Result;
|
|
throw new Exception($"Attachment failed: {resultBody}");
|
|
}
|
|
}
|
|
|
|
public static void AttachFiles(string url, List<Attachment> headerAttachments = null, List<Attachment> dataAttachments = null)
|
|
{
|
|
string directory;
|
|
try
|
|
{
|
|
if (headerAttachments is not null)
|
|
{
|
|
foreach (Attachment attachment in headerAttachments)
|
|
{
|
|
directory = Path.GetDirectoryName(attachment.HeaderIdDirectory) ?? throw new Exception();
|
|
File.Copy(attachment.SourceFileName, Path.Combine(directory, attachment.AttachmentId, attachment.DestinationFileName), overwrite: true);
|
|
AttachFile(url, attachment);
|
|
}
|
|
}
|
|
if (dataAttachments is not null)
|
|
{
|
|
foreach (Attachment attachment in dataAttachments)
|
|
{
|
|
directory = Path.GetDirectoryName(attachment.HeaderIdDirectory) ?? throw new Exception();
|
|
File.Copy(attachment.SourceFileName, Path.Combine(directory, attachment.AttachmentId, attachment.DestinationFileName), overwrite: true);
|
|
AttachFile(url, attachment);
|
|
}
|
|
}
|
|
//MessageBox.Show(r.ToString());
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Exception exception = e;
|
|
StringBuilder stringBuilder = new();
|
|
while (exception is not null)
|
|
{
|
|
_ = stringBuilder.AppendLine(exception.Message);
|
|
exception = exception.InnerException;
|
|
}
|
|
//MessageBox.Show(msgs.ToString(), "Exception", //MessageBoxButtons.OK, //MessageBoxIcon.Error);
|
|
throw new Exception(stringBuilder.ToString());
|
|
}
|
|
}
|
|
|
|
} |