public static List <오류목록Model> GetErrorMessage(string[] splitedData) { _errorCnt = 1; var parsedModel = ParseLogic.Parse(splitedData); var returnModel = new List <오류목록Model>(); returnModel.AddRange(Get누락헤더여부(parsedModel)); if (returnModel.Count <= 0) // 헤더 누락이 없을 때만 확인한다. { var data = Get줄바꿈오류(splitedData); if (data != null) { returnModel.Add(data); } if (returnModel.Count <= 0) // 줄바꿈 문제가 없을 때만 확인한다. { returnModel.AddRange(Check구분자개수오류(splitedData)); returnModel.AddRange(CheckBasicDataValidation(parsedModel)); } } return(returnModel); }
public static List <오류목록Model> Check구분자개수오류(string[] splitedData) { int nowSpliterNum = 0; int RXDcnt = 0; string nowHeaderName = "MSH"; var retv = new List <오류목록Model>(); for (int i = 0; i < splitedData.Count(); i++) { bool isHeader = ParseLogic.IsHeader(splitedData[i]); if (!isHeader) { nowSpliterNum++; } if (IsLastElement(splitedData, i) || isHeader) { if (splitedData[i] != "MSH") { if (nowHeaderName == "RXD") { RXDcnt++; } if (nowSpliterNum != Get구분자개수(nowHeaderName)) { if (nowHeaderName == "RXD") { retv.Add(new 오류목록Model { No = _errorCnt++, 메세지 = $"{RXDcnt}번째 RXD의 구분자 개수가 다릅니다." }); } else { retv.Add(new 오류목록Model { No = _errorCnt++, 메세지 = $"{nowHeaderName}의 구분자 개수가 다릅니다." }); } } } nowHeaderName = splitedData[i]; nowSpliterNum = 0; } } return(retv); }