All but DataTable Deserialize

This commit is contained in:
2023-01-09 19:26:00 -07:00
parent 6cbcad2a5d
commit 0468c8d42d
25 changed files with 374 additions and 89 deletions

View File

@ -705,10 +705,10 @@ public class MetrologyRepository : IMetrologyRepository
return r;
}
public IEnumerable<AwaitingDispo> GetAwaitingDispo()
public IEnumerable<AwaitingDisposition> GetAwaitingDisposition()
{
using DbConnection conn = GetDbConnection();
return conn.Query<AwaitingDispo>("GetAwaitingDispo", commandType: CommandType.StoredProcedure);
return conn.Query<AwaitingDisposition>("GetAwaitingDispo", commandType: CommandType.StoredProcedure);
}
public int UpdateReviewDate(int toolTypeId, long headerId, bool clearDate)

View File

@ -1,7 +1,7 @@
using Newtonsoft.Json;
using OI.Metrology.Shared.DataModels;
using OI.Metrology.Shared.Models.Stateless;
using OI.Metrology.Shared.Services;
using System.Data;
namespace OI.Metrology.Viewer.Repository;
@ -13,18 +13,20 @@ public class ToolTypesRepository : IToolTypesRepository
public ToolTypesRepository() => _Log = Serilog.Log.ForContext<ToolTypesRepository>();
// Get a list of tooltypes, returns just Name and ID
object IToolTypesRepository.Index(IMetrologyRepository metrologyRepository)
Result<ToolTypeNameId[]> IToolTypesRepository.Index(IMetrologyRepository metrologyRepository)
{
var r = new
ToolTypeNameId[] toolTypeNameIdCollection = metrologyRepository.GetToolTypes().Select(tt => new ToolTypeNameId() { ToolTypeName = tt.ToolTypeName, ID = tt.ID }).ToArray();
Result<ToolTypeNameId[]> r = new()
{
Results = metrologyRepository.GetToolTypes().Select(tt => new { tt.ToolTypeName, tt.ID })
Results = toolTypeNameIdCollection,
TotalRows = toolTypeNameIdCollection.Length,
};
return r;
}
// Gets the metadata for a tooltype, accepts a parameter which sorts the results
// This is used to setup the grid displays on the UI
object IToolTypesRepository.GetToolTypeMetadata(IMetrologyRepository metrologyRepository, int id, string sortby)
Result<ToolTypeMetadataResult> IToolTypesRepository.GetToolTypeMetadata(IMetrologyRepository metrologyRepository, int id, string sortby)
{
ToolType tt = metrologyRepository.GetToolTypeByID(id);
IEnumerable<ToolTypeMetadata> md = metrologyRepository.GetToolTypeMetadataByToolTypeID(id);
@ -34,70 +36,65 @@ public class ToolTypesRepository : IToolTypesRepository
if (string.Equals(sortby, "table", StringComparison.OrdinalIgnoreCase))
md = md.OrderBy(f => f.GridDisplayOrder).ToList();
var r = new
ToolTypeMetadataResult toolTypeMetadataResult = new(tt, md.ToArray());
int totalRows = toolTypeMetadataResult.Metadata is not null ? toolTypeMetadataResult.Metadata.Length : 0;
Result<ToolTypeMetadataResult> r = new()
{
Results = new
{
ToolType = tt,
Metadata = md
}
Results = toolTypeMetadataResult,
TotalRows = totalRows,
};
return r;
}
// Gets headers, request/response format is to allow paging with igniteUI
// The headerid parameter is used for navigating directly to a header, when the button is clicked in Awaiting Dispo
string IToolTypesRepository.GetHeaders(IMetrologyRepository metrologyRepository, int id, DateTime? datebegin, DateTime? dateend, int? page, int? pagesize, long? headerid)
Result<DataTable> IToolTypesRepository.GetHeaders(IMetrologyRepository metrologyRepository, int id, DateTime? datebegin, DateTime? dateend, int? page, int? pagesize, long? headerid)
{
string result;
long totalRecs;
System.Data.DataTable dt = metrologyRepository.GetHeaders(id, datebegin, dateend, page, pagesize, headerid, out totalRecs);
var r = new
DataTable dataTable = metrologyRepository.GetHeaders(id, datebegin, dateend, page, pagesize, headerid, out totalRecs);
Result<DataTable> r = new()
{
Results = dt,
Results = dataTable,
TotalRows = totalRecs,
};
result = JsonConvert.SerializeObject(r);
return result;
return r;
}
// Gets header titles, used in the Run Headers UI
string IToolTypesRepository.GetHeaderTitles(IMetrologyRepository metrologyRepository, int id, int? page, int? pagesize)
Result<HeaderCommon[]> IToolTypesRepository.GetHeaderTitles(IMetrologyRepository metrologyRepository, int id, int? page, int? pagesize)
{
string result;
long totalRecs;
IEnumerable<HeaderCommon> dt = metrologyRepository.GetHeaderTitles(id, page, pagesize, out totalRecs);
var r = new
HeaderCommon[] headerCommonCollection = metrologyRepository.GetHeaderTitles(id, page, pagesize, out totalRecs).ToArray();
Result<HeaderCommon[]> r = new()
{
Results = dt,
Results = headerCommonCollection,
TotalRows = totalRecs,
};
result = JsonConvert.SerializeObject(r);
return result;
return r;
}
// Get all of the fields for a header, used with the Run Header UI
string IToolTypesRepository.GetHeaderFields(IMetrologyRepository metrologyRepository, int id, long headerid)
Result<ColumnValue[]> IToolTypesRepository.GetHeaderFields(IMetrologyRepository metrologyRepository, int id, long headerid)
{
string result;
var r = new
ColumnValue[] columnValueCollection = metrologyRepository.GetHeaderFields(id, headerid).Select(x => new ColumnValue() { Column = x.Key, Value = x.Value }).ToArray();
Result<ColumnValue[]> r = new()
{
Results = metrologyRepository.GetHeaderFields(id, headerid).Select(x => new { Column = x.Key, x.Value }).ToList()
Results = columnValueCollection,
TotalRows = columnValueCollection.Length,
};
result = JsonConvert.SerializeObject(r);
return result;
return r;
}
// Get the data for a header, used with the Run Info UI
string IToolTypesRepository.GetData(IMetrologyRepository metrologyRepository, int id, long headerid)
Result<DataTable> IToolTypesRepository.GetData(IMetrologyRepository metrologyRepository, int id, long headerid)
{
string result;
var r = new
DataTable dataTable = metrologyRepository.GetData(id, headerid);
Result<DataTable> r = new()
{
Results = metrologyRepository.GetData(id, headerid)
Results = dataTable,
TotalRows = dataTable.Rows.Count,
};
result = JsonConvert.SerializeObject(r);
return result;
return r;
}
// Display an attachment, used for Run Info - note it is by tool type ID and attachment GUID, so it is best for internal use
@ -133,7 +130,7 @@ public class ToolTypesRepository : IToolTypesRepository
Exception? result = null;
// Call the export stored procedure
_Log.Debug($"Exporting to <{oiExportPath}>");
System.Data.DataSet ds = metrologyRepository.GetOIExportData(toolTypeId, headerid);
DataSet ds = metrologyRepository.GetOIExportData(toolTypeId, headerid);
try
{
// The SP must return 3 result tables
@ -154,7 +151,7 @@ public class ToolTypesRepository : IToolTypesRepository
_ = sb.Append('\t');
}
// The third table has the detail data
foreach (System.Data.DataRow dr in ds.Tables[2].Rows)
foreach (DataRow dr in ds.Tables[2].Rows)
{
foreach (object? o in dr.ItemArray)
{