SfisDataBuilder.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System.Collections.Generic;
  2. using System.Text;
  3. namespace TeamAAS_VP.Core.Sfis
  4. {
  5. public static class SfisResultDataBuilder
  6. {
  7. public static string Build(IEnumerable<SfisTestRecord> records)
  8. {
  9. var sb = new StringBuilder();
  10. sb.Append("\"TEST\",\"STATUS\",\"VALUE\"\r\n");
  11. foreach (var record in records)
  12. {
  13. sb.Append('"').Append(EscapeCsv(record.TestName)).Append('"').Append(',');
  14. sb.Append(record.Passed ? "1" : "0").Append(',');
  15. sb.Append('"').Append(EscapeCsv(record.Value)).Append('"').Append("\r\n");
  16. }
  17. return sb.ToString();
  18. }
  19. public static string BuildPassOnly(string testName = "RFID Read", string value = "1")
  20. {
  21. return Build(new[] { new SfisTestRecord { TestName = testName, Passed = true, Value = value } });
  22. }
  23. private static string EscapeCsv(string value)
  24. {
  25. return string.IsNullOrEmpty(value) ? string.Empty : value.Replace("\"", "\"\"");
  26. }
  27. }
  28. public static class SfisInputDataBuilder
  29. {
  30. public static SfisInputDataPayload FromContext(SfisUnitContext context, SfisConfig config)
  31. {
  32. return new SfisInputDataPayload
  33. {
  34. PassType = string.IsNullOrWhiteSpace(context.PassType) ? config.InputDataPassType : context.PassType,
  35. MoNumber = string.IsNullOrWhiteSpace(context.MoNumber) ? config.DefaultMoNumber : context.MoNumber,
  36. ReelIdSn = context.ReelIdSn,
  37. AoiLocTag = string.IsNullOrWhiteSpace(context.AoiLocTag) ? config.InputDataAoiLocTag : context.AoiLocTag,
  38. Isn = context.Isn
  39. };
  40. }
  41. public static string Build(SfisInputDataPayload payload)
  42. {
  43. return payload.BuildDataString();
  44. }
  45. }
  46. }