using System.Collections.Generic; using System.Text; namespace TeamAAS_VP.Core.Sfis { public static class SfisResultDataBuilder { public static string Build(IEnumerable records) { var sb = new StringBuilder(); sb.Append("\"TEST\",\"STATUS\",\"VALUE\"\r\n"); foreach (var record in records) { sb.Append('"').Append(EscapeCsv(record.TestName)).Append('"').Append(','); sb.Append(record.Passed ? "1" : "0").Append(','); sb.Append('"').Append(EscapeCsv(record.Value)).Append('"').Append("\r\n"); } return sb.ToString(); } public static string BuildPassOnly(string testName = "RFID Read", string value = "1") { return Build(new[] { new SfisTestRecord { TestName = testName, Passed = true, Value = value } }); } private static string EscapeCsv(string value) { return string.IsNullOrEmpty(value) ? string.Empty : value.Replace("\"", "\"\""); } } public static class SfisInputDataBuilder { public static SfisInputDataPayload FromContext(SfisUnitContext context, SfisConfig config) { return new SfisInputDataPayload { PassType = string.IsNullOrWhiteSpace(context.PassType) ? config.InputDataPassType : context.PassType, MoNumber = string.IsNullOrWhiteSpace(context.MoNumber) ? config.DefaultMoNumber : context.MoNumber, ReelIdSn = context.ReelIdSn, AoiLocTag = string.IsNullOrWhiteSpace(context.AoiLocTag) ? config.InputDataAoiLocTag : context.AoiLocTag, Isn = context.Isn }; } public static string Build(SfisInputDataPayload payload) { return payload.BuildDataString(); } } }