private static Message GetMessage(MessageSpec_Type e) { if (e is null) { return(new Message()); } return(new Message { SendingEntityIn = e.SendingEntityIN, Jurisdiction = Parse <Alpha2Code>(e.TransmittingCountry), Jurisdictions = e.ReceivingCountry.SelectOrEmpty(x => Parse <Alpha2Code>(x)).ToArray(), Type = Parse <MessageTypeEnum>(e.MessageType), Language = Parse <LanguageCode>(e.Language), Warning = e.Warning, Contact = e.Contact, RefId = e.MessageRefId, TypeIndic = Parse <MessageTypeIndicEnum>(e.MessageTypeIndic), CorrMessageRefId = e.CorrMessageRefId, ReportingPeriod = e.ReportingPeriod, Timestamp = e.Timestamp, }); }
private MessageSpec_Type GetMessageSpec(ExcelPackage package) { var messageSpec = new MessageSpec_Type(); this.receivingCountryClass = new List <ReceivingCountryClass>(); // cbc_oecd.MessageSpec.SendingEntityIN messageSpec.TransmittingCountry = CountryCode_Type.ZA; // ReceivingCountry List <CountryCode_Type> ReceivingCountries = new List <CountryCode_Type>(); var rowNumber = 2; while (true) { var cellValue = GetExcelStringValue(package, "SUMMARY", "A" + rowNumber); if (string.IsNullOrEmpty(cellValue)) { break; } ReceivingCountries.Add(EnumLookup.GetCountryCodeEnumType(cellValue)); // (S:SUMMARY - Cells:A) this.receivingCountryClass.Add(new ReceivingCountryClass { RowNumber = rowNumber, CountryCode = cellValue }); rowNumber++; } messageSpec.ReceivingCountry = new CountryCode_Type[] { CountryCode_Type.ZA }; // MessageType messageSpec.MessageType = MessageType_EnumType.CBC; // Language messageSpec.Language = LanguageCode_Type.EN; messageSpec.LanguageSpecified = true; // Warning messageSpec.Warning = GetExcelStringValue(package, "CoverPage", "B20"); // Contact messageSpec.Contact = GetExcelStringValue(package, "CoverPage", "B1"); // (S: CoverPage; Cells:B1) // MessageRefId messageSpec.MessageRefId = GetExcelStringValue(package, "CoverPage", "B2");// "ZA2019BAW"; // (S: CoverPage; Cells:B2) messageSpec.CorrMessageRefId = new string[] { GetExcelStringValue(package, "CoverPage", "B3") }; // MessageTypeIndic messageSpec.MessageTypeIndic = EnumLookup.GetCbcMessageTypeIndicEnumType(GetExcelStringValue(package, "CoverPage", "B4")); // CbcMessageTypeIndic_EnumType.CBC401; // (S: CoverPage; Cells:B3) messageSpec.MessageTypeIndicSpecified = true; // ReportingPeriod // messageSpec.ReportingPeriod = new DateTime(GetExcelIntValue(package, "CoverPage", "B5").Value, GetExcelIntValue(package, "CoverPage", "B6").Value, GetExcelIntValue(package, "CoverPage", "B7").Value); // new DateTime(2019, 9, 30); // (S: CoverPage; Cells:B4, B5, B6) messageSpec.ReportingPeriod = DateTime.Parse(GetExcelStringValue(package, "CoverPage", "B5")); messageSpec.Timestamp = DateTime.Now; // messageSpec.SendingEntityIN = null; // TODO Check with SARS // messageSpec.CorrMessageRefId = null; // This data element is not used for CbC reporting return(messageSpec); }
private MessageSpec_Type GetMessageSpec(ExcelPackage package) { var messageSpec = new MessageSpec_Type(); //ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial; //using (var package = new ExcelPackage(xlsxFile)) //{ // cbc_oecd.MessageSpec.SendingEntityIN messageSpec.TransmittingCountry = CountryCode_Type.ZA; // ReceivingCountry List <CountryCode_Type> ReceivingCountries = new List <CountryCode_Type>(); var rowNumber = 2; while (true) { var cellValue = GetExcelStringValue(package, "SUMMARY", "A" + rowNumber); if (string.IsNullOrEmpty(cellValue)) { break; } ReceivingCountries.Add(GetCountryCodeEnumType(cellValue)); // (S:SUMMARY - Cells:A) this.receivingCountryClass.Add(new ReceivingCountryClass { RowNumber = rowNumber, CountryCode = cellValue }); rowNumber++; } messageSpec.ReceivingCountry = ReceivingCountries.ToArray(); // MessageType messageSpec.MessageType = MessageType_EnumType.CBC; // Language messageSpec.Language = LanguageCode_Type.EN; // Warning messageSpec.Warning = ""; // Contact messageSpec.Contact = GetExcelStringValue(package, "CoverPage", "B1"); // (S: CoverPage; Cells:B1) // MessageRefId messageSpec.MessageRefId = GetExcelStringValue(package, "CoverPage", "B2");// "ZA2019BAW"; // (S: CoverPage; Cells:B2) // MessageTypeIndic messageSpec.MessageTypeIndic = GetCbcMessageTypeIndicEnumType(GetExcelStringValue(package, "CoverPage", "B3")); // CbcMessageTypeIndic_EnumType.CBC401; // (S: CoverPage; Cells:B3) //// CorrMessageRefId //messageSpec.CorrMessageRefId = new string[]; // ReportingPeriod messageSpec.ReportingPeriod = new DateTime(GetExcelIntValue(package, "CoverPage", "B4").Value, GetExcelIntValue(package, "CoverPage", "B5").Value, GetExcelIntValue(package, "CoverPage", "B6").Value); // new DateTime(2019, 9, 30); // (S: CoverPage; Cells:B4, B5, B6) messageSpec.Timestamp = DateTime.Now; //} return(messageSpec); }