diff options
author | Sergey Chebotar <s.chebotar@gmail.com> | 2022-12-20 12:03:20 +0300 |
---|---|---|
committer | Sergey Chebotar <s.chebotar@gmail.com> | 2022-12-20 12:03:20 +0300 |
commit | 3d186c22e8665b80839495fdcf4b176c2f3e03b9 (patch) | |
tree | 11f4cdeb3d215d8ca92cb72450b0da8a92ec17b8 /src/AddIn/Sku.cs | |
parent | bfada8d605619e80702391c7f8fb326f021df18b (diff) |
Rename Sku class
Diffstat (limited to 'src/AddIn/Sku.cs')
-rw-r--r-- | src/AddIn/Sku.cs | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/AddIn/Sku.cs b/src/AddIn/Sku.cs new file mode 100644 index 0000000..aaf5937 --- /dev/null +++ b/src/AddIn/Sku.cs @@ -0,0 +1,67 @@ +using System.Text.RegularExpressions; + +namespace RhSolutions +{ + 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 |