_AssignedToNameToEncodedPAT
_LastDateForcedUpdatedBy
_LastDateDeleteForcedUpdatedBy
This commit is contained in:
2023-10-08 15:37:36 -07:00
parent 7d8f409ff3
commit 61334d690b
8 changed files with 293 additions and 17 deletions

View File

@ -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<string, string> _RequestorNameToUser;
private readonly ReadOnlyDictionary<string, string> _AssignedToNameToUser;
private readonly WorkItemTrackingHttpClient _WorkItemTrackingHttpClient;
private readonly ReadOnlyDictionary<string, string> _AssignedToNameToEncodedPAT;
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> 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<string, string> requestorNameToUser = new();
Dictionary<string, string> assignedToNameToUser = new();
Dictionary<string, string> 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())