From 243989f3b4b0d7fff820d7d4b41ae8edc63faa75 Mon Sep 17 00:00:00 2001 From: Frede Hundewadt Date: Thu, 19 Jan 2023 13:52:18 +0100 Subject: [PATCH] refactor mapping - initialized non-null properties --- ViesEntityModel.cs | 8 +++--- ViesQuery.cs | 5 ++-- ViesResponseParser.cs | 4 +-- ViesVatInfoMapper.cs | 61 +++++++++++++++++++++++++++++++------------ 4 files changed, 54 insertions(+), 24 deletions(-) diff --git a/ViesEntityModel.cs b/ViesEntityModel.cs index 129efaa..d4fcd9b 100644 --- a/ViesEntityModel.cs +++ b/ViesEntityModel.cs @@ -36,11 +36,11 @@ public class ViesEntityModel /// /// Business entity's country code of origin /// - public string CountryCode { get; set; } + public string CountryCode { get; set; } = ""; /// /// Business entity vat number /// - public string VatNumber { get; set; } + public string VatNumber { get; set; } = ""; /// /// Request date /// @@ -52,9 +52,9 @@ public class ViesEntityModel /// /// Business entity name /// - public string Name { get; set; } + public string Name { get; set; } = ""; /// /// Business entity address /// - public string Address { get; set; } + public string Address { get; set; } = ""; } \ No newline at end of file diff --git a/ViesQuery.cs b/ViesQuery.cs index f9140fa..8ccebdc 100644 --- a/ViesQuery.cs +++ b/ViesQuery.cs @@ -33,9 +33,10 @@ public class ViesQuery /// /// Country code for country to query /// - public string CountryCode { get; set; } + public string CountryCode { get; set; } = ""; + /// /// Vat number to query /// - public string VatNumber { get; set; } + public string VatNumber { get; set; } = ""; } \ No newline at end of file diff --git a/ViesResponseParser.cs b/ViesResponseParser.cs index 13fd078..a89faa5 100644 --- a/ViesResponseParser.cs +++ b/ViesResponseParser.cs @@ -52,8 +52,8 @@ public class ViesResponseParser VatNumber = (string)x.Element(x.Name.Namespace + "vatNumber"), RequestDate = DateTime.Now, Valid = (bool)x.Element(x.Name.Namespace + "valid"), - Name = (string)x.Element(x.Name.Namespace + "name"), - Address = (string)x.Element(x.Name.Namespace + "address") + Name = (string)x.Element(x.Name.Namespace + "name") ?? "", + Address = (string)x.Element(x.Name.Namespace + "address") ?? "" }).FirstOrDefault(); return x; } diff --git a/ViesVatInfoMapper.cs b/ViesVatInfoMapper.cs index ab3e11f..5b92df0 100644 --- a/ViesVatInfoMapper.cs +++ b/ViesVatInfoMapper.cs @@ -25,7 +25,9 @@ // *********************************************************************** using System; +using System.Collections.Generic; using System.Globalization; +using System.Linq.Expressions; using FCS.Lib.Common; namespace FCS.Lib.Vies @@ -44,14 +46,14 @@ namespace FCS.Lib.Vies /// /// /// - public VatInfoDto MapViesToCrm(ViesEntityModel viesEntity) + public VatInfoDto MapViesVatInfoDto(ViesEntityModel viesEntity) { var addressBlock = viesEntity.Address.Split('\n'); - string coName; - string address; - string zip; - string city; - var i = 1; + var coName = ""; + var address = ""; + var zip = ""; + var city = ""; + var i = 0; if (viesEntity.CountryCode == "SE" && addressBlock.Length > 0) { if (addressBlock.Length > 1) @@ -59,32 +61,59 @@ namespace FCS.Lib.Vies coName = addressBlock[i]; i++; } - address = addressBlock[i]; - i++; - zip = addressBlock[i].Substring(0, 6).Replace(" ", ""); - city = addressBlock[i].Substring(7).Trim(); + + try + { + address = addressBlock[i].Normalize(); + } + catch + { + address = "fejl"; + } + + if (addressBlock.Length > 2) + { + i++; + zip = addressBlock[i].Normalize().Substring(0, 6).Replace(" ", ""); + city = addressBlock[i].Normalize().Substring(7).Trim(); + } } else { if (addressBlock.Length > 1) { - coName = addressBlock[i]; + coName = addressBlock[i].Normalize(); i++; } - address = addressBlock[i]; - i++; - zip = addressBlock[i].Substring(0, 5).Replace(" ", ""); - city = addressBlock[i].Substring(5).Trim(); + + try + { + address = addressBlock[i].Normalize(); + } + catch + { + address = "fejl"; + } + + if (addressBlock.Length > 1) + { + i++; + zip = addressBlock[i].Substring(0, 5).Replace(" ", ""); + city = addressBlock[i].Substring(5).Trim(); + } } + + // generate return object var c = new VatInfoDto { - Name = viesEntity.Name, + Name = viesEntity.Name.Normalize(), Address = address, VatNumber = viesEntity.VatNumber, City = city, ZipCode = zip, RequestDate = DateTime.Now.ToString(CultureInfo.InvariantCulture) }; + c.States.Add(new VatState { State = viesEntity.Valid ? "NORMAL" : "LUKKET",