private bool ValidateCustomerDocument(CancelationModel cancelationModel) { if (cancelationModel.DocumentType == null && BusinessExtensions.GetDocumentType(cancelationModel.CustomerDocument) == null) { return(false); } if (cancelationModel.CustomerDocument.RemoveDocumentSpecialCharacters().Length == 11 || cancelationModel.CustomerDocument.RemoveDocumentSpecialCharacters().Length == 14) { return(true); } _logs.Add($"O cliente vinculado à apólice {cancelationModel.PolicyIdentifier} não possui um documento válido e foi ignorado no arquivo." + $" NR_CNPJ_CPF [{cancelationModel.CustomerDocument}] - CD_TIPO_PESSO [{cancelationModel.DocumentType}]"); return(false); }
private List <string> CreateBodyLines(List <CancelationModel> population) { var bodyModel = new FileBodyModel(); var lineNumber = 1; foreach (var data in population) { if (data.PolicyInsurerIdentifier.isNullOrEmpty()) { _logs.Add($"A apólice {data.PolicyIdentifier} foi listada pra cancelamento, porém não pode ser cancelada, pois não possui um número de apólice"); continue; } var line = new LineFieldsModel() { LineNumber = lineNumber++ }; foreach (var key in Configuration.BusinessSettings.DefaultValues.Keys) { if (Configuration.BodyFields.ContainsKey(key)) { var fieldConfiguration = Configuration.BodyFields[key]; var fileField = new Field(ProcessType, fieldConfiguration) { Value = Configuration.BusinessSettings.DefaultValues[key] }; line.Fields.Add(key, fileField); } } CreateField(line, EnumFileFieldsType.Body, "TIPO_REGISTRO", Configuration.BusinessSettings.BodyIdentification); CreateField(line, EnumFileFieldsType.Body, "REGISTRO_SEQUENCIAL", line.LineNumber.ToString()); CreateField(line, EnumFileFieldsType.Body, "DOCUMENTO", data.PolicyInsurerIdentifier.RemoveHdiDocumentFormat()); CreateField(line, EnumFileFieldsType.Body, "ENDOSSO"); CreateField(line, EnumFileFieldsType.Body, "NUMERO_CONTROLE_ITURAN", data.PolicyIdentifier.ToString()); CreateField(line, EnumFileFieldsType.Body, "CODIGO_EQUIPAMENTO"); CreateField(line, EnumFileFieldsType.Body, "DATA_CANCELAMENTO", $"{data.CancelationDate:yyyyMMdd}"); CreateField(line, EnumFileFieldsType.Body, "DATA_PROCESSAMENTO"); CreateField(line, EnumFileFieldsType.Body, "STATUS_CANCELAMENTO"); CreateField(line, EnumFileFieldsType.Body, "CODIGO_OBSERVACAO"); CreateField(line, EnumFileFieldsType.Body, "OBSERVACAO"); CreateField(line, EnumFileFieldsType.Body, "VALOR_PREMIO"); if (!ValidateCustomerDocument(data)) { continue; } CreateField(line, EnumFileFieldsType.Body, "TIPO_DOCUMENTO", data.DocumentType == null ? BusinessExtensions.GetDocumentType(data.CustomerDocument)?.ToInt().ToString() : data.DocumentType?.ToInt().ToString()); CreateField(line, EnumFileFieldsType.Body, "NR_CNPJ_CPF", data.CustomerDocument.RemoveDocumentSpecialCharacters()); bodyModel.Content.Add(line); } var bodyContent = new List <string>(); foreach (var line in bodyModel.Content) { var body = new StringBuilder(); foreach (var bodyField in line.PrepareSequenceFileFields()) { body.Append(bodyField.Value); } bodyContent.Add(body.Append(Environment.NewLine).ToString()); } return(bodyContent); }