diff options
author | Sergey Chebotar <s.chebotar@gmail.com> | 2022-12-20 12:27:47 +0300 |
---|---|---|
committer | Sergey Chebotar <s.chebotar@gmail.com> | 2022-12-20 12:27:47 +0300 |
commit | 73569a43644309d0342817580bcfd86c1face5b8 (patch) | |
tree | f3c6e15db82130b02ec8c3fa1b64674e6a9cf48d /src/Models/Sku.cs | |
parent | 3d186c22e8665b80839495fdcf4b176c2f3e03b9 (diff) |
Namespace refactoring
Diffstat (limited to 'src/Models/Sku.cs')
-rw-r--r-- | src/Models/Sku.cs | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/Models/Sku.cs b/src/Models/Sku.cs new file mode 100644 index 0000000..1c5e477 --- /dev/null +++ b/src/Models/Sku.cs @@ -0,0 +1,67 @@ +using System.Text.RegularExpressions; + +namespace RhSolutions.Models +{ + internal class Sku + { + public string Article { get; private set; } + public string Variant { get; private set; } + + public Sku(string article, string variant) + { + Article = article; + Variant = variant; + } + + public static bool TryParse(string line, out Sku rehauSku) + { + Match match; + match = Regex.Match(line, @"\b[1]\d{6}[1]\d{3}\b"); + if (match.Success) + { + string sku = match.Value.Substring(1, 6); + string variant = match.Value.Substring(8, 3); + rehauSku = new Sku(sku, variant); + return true; + } + + match = Regex.Match(line, @"\b\d{6}\D\d{3}\b"); + if (match.Success) + { + string sku = match.Value.Substring(0, 6); + string variant = match.Value.Substring(7, 3); + rehauSku = new Sku(sku, variant); + return true; + } + + match = Regex.Match(line, @"\b\d{9}\b"); + if (match.Success) + { + string sku = match.Value.Substring(0, 6); + string variant = match.Value.Substring(6, 3); + rehauSku = new Sku(sku, variant); + return true; + } + + match = Regex.Match(line, @"\b\d{6}\b"); + if (match.Success) + { + string sku = match.Value.Substring(0, 6); + string variant = "001"; + rehauSku = new Sku(sku, variant); + return true; + } + + else + { + rehauSku = null; + return false; + } + } + + public override string ToString() + { + return $"1{Article}1{Variant}"; + } + } +}
\ No newline at end of file |