aboutsummaryrefslogtreecommitdiff
path: root/src/Models/Sku.cs
diff options
context:
space:
mode:
authorSergey Chebotar <s.chebotar@gmail.com>2022-12-20 12:27:47 +0300
committerSergey Chebotar <s.chebotar@gmail.com>2022-12-20 12:27:47 +0300
commit73569a43644309d0342817580bcfd86c1face5b8 (patch)
treef3c6e15db82130b02ec8c3fa1b64674e6a9cf48d /src/Models/Sku.cs
parent3d186c22e8665b80839495fdcf4b176c2f3e03b9 (diff)
Namespace refactoring
Diffstat (limited to 'src/Models/Sku.cs')
-rw-r--r--src/Models/Sku.cs67
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