diff --git a/Adaptation/FileHandlers/ConvertExcelToJson/ProcessData.cs b/Adaptation/FileHandlers/ConvertExcelToJson/ProcessData.cs
index 8c6f39a..7cc133b 100644
--- a/Adaptation/FileHandlers/ConvertExcelToJson/ProcessData.cs
+++ b/Adaptation/FileHandlers/ConvertExcelToJson/ProcessData.cs
@@ -98,12 +98,12 @@ public class ProcessData : IProcessData
if (value.Contains("\""))
value = value.Replace("\"", "\\\"");
if (value.Contains("\n"))
- value = value.Replace("\n", "
");
+ value = value.Replace("\n", "
");
name = table.Columns[j].ColumnName.ToString().Trim();
if (name.Contains("\""))
name = name.Replace("\"", "\\\"");
if (name.Contains("\n"))
- name = name.Replace("\n", "
");
+ name = name.Replace("\n", "
");
_ = jsonString.Append('"').Append(name).Append("\":").Append('"').Append(value).Append('"');
if (j < table.Columns.Count - 1)
_ = jsonString.Append(',');
diff --git a/Adaptation/FileHandlers/json/FileRead.cs b/Adaptation/FileHandlers/json/FileRead.cs
index a9137b8..b1e41ea 100644
--- a/Adaptation/FileHandlers/json/FileRead.cs
+++ b/Adaptation/FileHandlers/json/FileRead.cs
@@ -28,9 +28,12 @@ public class FileRead : Shared.FileRead, IFileRead
private readonly string _Project;
private readonly string _BasePage;
private readonly HttpClient _HttpClient;
+ private string _LastDateForcedUpdatedBy;
+ private string _LastDateDeleteForcedUpdatedBy;
+ private readonly WorkItemTrackingHttpClient _WorkItemTrackingHttpClient;
private readonly ReadOnlyDictionary _RequestorNameToUser;
private readonly ReadOnlyDictionary _AssignedToNameToUser;
- private readonly WorkItemTrackingHttpClient _WorkItemTrackingHttpClient;
+ private readonly ReadOnlyDictionary _AssignedToNameToEncodedPAT;
public FileRead(ISMTP smtp, Dictionary fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList modelObjectParameters, string equipmentDictionaryName, Dictionary> dummyRuns, Dictionary> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
@@ -45,8 +48,11 @@ public class FileRead : Shared.FileRead, IFileRead
throw new Exception(cellInstanceConnectionName);
if (!_IsDuplicator)
throw new Exception(cellInstanceConnectionName);
+ _LastDateForcedUpdatedBy = string.Empty;
+ _LastDateDeleteForcedUpdatedBy = string.Empty;
Dictionary requestorNameToUser = new();
Dictionary assignedToNameToUser = new();
+ Dictionary assignedToNameToEncodedPAT = new();
string cellInstanceNamed = string.Concat("CellInstance.", cellInstanceName);
MediaTypeWithQualityHeaderValue mediaTypeWithQualityHeaderValue = new("application/json");
_API = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, $"{cellInstanceNamed}.HttpClient.API");
@@ -63,6 +69,10 @@ public class FileRead : Shared.FileRead, IFileRead
foreach (ModelObjectParameterDefinition modelObjectParameterDefinition in requestor)
requestorNameToUser.Add(modelObjectParameterDefinition.Name.Split('.')[1], modelObjectParameterDefinition.Value);
_RequestorNameToUser = new(requestorNameToUser);
+ ModelObjectParameterDefinition[] encodedPAT = GetProperties(cellInstanceConnectionName, modelObjectParameters, "Encoded.PAT.");
+ foreach (ModelObjectParameterDefinition modelObjectParameterDefinition in encodedPAT)
+ assignedToNameToEncodedPAT.Add(modelObjectParameterDefinition.Name.Split('.')[2], modelObjectParameterDefinition.Value);
+ _AssignedToNameToEncodedPAT = new(assignedToNameToEncodedPAT);
byte[] bytes = Encoding.ASCII.GetBytes($":{pat}");
string base64 = Convert.ToBase64String(bytes);
_HttpClient = new(new HttpClientHandler() { UseDefaultCredentials = true }) { BaseAddress = new(baseAddress) };
@@ -148,7 +158,28 @@ public class FileRead : Shared.FileRead, IFileRead
results.Item4.Add(_Logistics.FileInfo);
else
{
- IProcessData iProcessData = new ProcessData(this, _Logistics, results.Item4, _HttpClient, _BasePage, _API, _Query, _WorkItemTrackingHttpClient, _Project, _AssignedToNameToUser, _RequestorNameToUser, json);
+ string formattedDateTime = dateTime.ToString("yyyy-MM-dd");
+ bool forceUpdatedBy = !_IsEAFHosted || (dateTime.DayOfWeek == DayOfWeek.Thursday && dateTime.Hour == 12 && _LastDateForcedUpdatedBy != formattedDateTime);
+ if (forceUpdatedBy)
+ _LastDateForcedUpdatedBy = formattedDateTime;
+ bool forceDeleteUpdatedBy = !_IsEAFHosted || (dateTime.DayOfWeek == DayOfWeek.Thursday && dateTime.Hour == 18 && _LastDateDeleteForcedUpdatedBy != formattedDateTime);
+ if (forceDeleteUpdatedBy)
+ _LastDateDeleteForcedUpdatedBy = formattedDateTime;
+ IProcessData iProcessData = new ProcessData(this,
+ _Logistics,
+ results.Item4,
+ _HttpClient,
+ _BasePage,
+ _API,
+ _Query,
+ _WorkItemTrackingHttpClient,
+ _Project,
+ _AssignedToNameToEncodedPAT,
+ _AssignedToNameToUser,
+ _RequestorNameToUser,
+ json,
+ forceUpdatedBy,
+ forceDeleteUpdatedBy);
if (iProcessData is not ProcessData _)
throw new Exception(string.Concat("A) No Data - ", dateTime.Ticks));
if (!iProcessData.Details.Any())
diff --git a/Adaptation/FileHandlers/json/ProcessData.cs b/Adaptation/FileHandlers/json/ProcessData.cs
index 33ae566..31355cc 100644
--- a/Adaptation/FileHandlers/json/ProcessData.cs
+++ b/Adaptation/FileHandlers/json/ProcessData.cs
@@ -14,6 +14,7 @@ using System.Globalization;
using System.IO;
using System.Linq;
using System.Net.Http;
+using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
@@ -27,11 +28,39 @@ public class ProcessData : IProcessData
List