This commit is contained in:
2023-10-31 22:34:12 -07:00
parent f684c4b7ef
commit 631b24ff0d
53 changed files with 2734 additions and 643 deletions

View File

@ -63,18 +63,6 @@ public class WorkMaterialRepository : IWorkMaterialRepository
return result.ToString();
}
private static StringBuilder GetForJsonPath(IDbConnectionFactory dbConnectionFactory, string commandText)
{
StringBuilder stringBuilder = new();
using DbConnection dbConnection = dbConnectionFactory.GetDbConnection(useOI2Sql: true);
DbCommand dbCommand = dbConnection.CreateCommand();
dbCommand.CommandText = commandText;
DbDataReader dbDataReader = dbCommand.ExecuteReader(CommandBehavior.SequentialAccess);
while (dbDataReader.Read())
_ = stringBuilder.Append(dbDataReader.GetString(0));
return stringBuilder;
}
private static (int?, int?, int?, bool) GetWorkOrder(string mid)
{
int? workOrderStep = null;
@ -108,6 +96,18 @@ public class WorkMaterialRepository : IWorkMaterialRepository
return new(workOrderNumber, workOrderStep, workOrderCassette, workOrderStep is not null || workOrderNumber is not null || workOrderCassette is not null);
}
private static StringBuilder GetForJsonPath(IDbConnectionFactory dbConnectionFactory, string commandText)
{
StringBuilder stringBuilder = new();
using DbConnection dbConnection = dbConnectionFactory.GetDbConnection(useOI2Sql: true);
DbCommand dbCommand = dbConnection.CreateCommand();
dbCommand.CommandText = commandText;
DbDataReader dbDataReader = dbCommand.ExecuteReader(CommandBehavior.SequentialAccess);
while (dbDataReader.Read())
_ = stringBuilder.Append(dbDataReader.GetString(0));
return stringBuilder;
}
Result<WorkMaterialV2[]> IWorkMaterialRepository.GetCassette(string mid)
{
Result<WorkMaterialV2[]>? result;
@ -132,7 +132,7 @@ public class WorkMaterialRepository : IWorkMaterialRepository
IWorkMaterialRepository workMaterialRepository = this;
string commandText = workMaterialRepository.GetCommandText(workOrderNumber, workOrderStep, workOrderCassette);
StringBuilder stringBuilder = GetForJsonPath(_DBConnectionFactory, commandText);
JsonElement[]? jsonElements = JsonSerializer.Deserialize<JsonElement[]>(stringBuilder.ToString());
JsonElement[]? jsonElements = stringBuilder.Length == 0 ? Array.Empty<JsonElement>() : JsonSerializer.Deserialize<JsonElement[]>(stringBuilder.ToString());
if (jsonElements is null)
throw new NullReferenceException(nameof(jsonElements));
foreach (JsonElement jsonElement in jsonElements)
@ -140,7 +140,7 @@ public class WorkMaterialRepository : IWorkMaterialRepository
if (jsonElement.ValueKind != JsonValueKind.Object)
continue;
jsonProperties = jsonElement.EnumerateObject().ToArray();
if (!jsonProperties.Any())
if (jsonProperties.Length == 0)
continue;
group = JsonSerializer.Deserialize<WorkMaterial[]>(jsonProperties.First().Value.ToString(), new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
if (group is null)