aboutsummaryrefslogtreecommitdiff
path: root/src/Interface
diff options
context:
space:
mode:
Diffstat (limited to 'src/Interface')
-rw-r--r--src/Interface/AbstractBar.cs11
-rw-r--r--src/Interface/ProgressBar.cs9
-rw-r--r--src/Interface/ResultBar.cs44
3 files changed, 58 insertions, 6 deletions
diff --git a/src/Interface/AbstractBar.cs b/src/Interface/AbstractBar.cs
new file mode 100644
index 0000000..c5918a8
--- /dev/null
+++ b/src/Interface/AbstractBar.cs
@@ -0,0 +1,11 @@
+using Microsoft.Office.Interop.Excel;
+
+namespace RehauSku.Interface
+{
+ internal abstract class AbstractBar
+ {
+ protected Application Excel = AddIn.Excel;
+
+ public abstract void Update();
+ }
+}
diff --git a/src/Interface/ProgressBar.cs b/src/Interface/ProgressBar.cs
index 9a0490b..ed889f6 100644
--- a/src/Interface/ProgressBar.cs
+++ b/src/Interface/ProgressBar.cs
@@ -1,10 +1,7 @@
-using Microsoft.Office.Interop.Excel;
-
-namespace RehauSku.Interface
+namespace RehauSku.Interface
{
- internal class ProgressBar
+ internal class ProgressBar : AbstractBar
{
- private Application Excel = AddIn.Excel;
private double CurrentProgress { get; set; }
private readonly double TaskWeight;
private readonly string Message;
@@ -16,7 +13,7 @@ namespace RehauSku.Interface
CurrentProgress = 0;
}
- public void DoProgress()
+ public override void Update()
{
double percent = (++CurrentProgress / TaskWeight) * 100;
diff --git a/src/Interface/ResultBar.cs b/src/Interface/ResultBar.cs
new file mode 100644
index 0000000..1b4d7f4
--- /dev/null
+++ b/src/Interface/ResultBar.cs
@@ -0,0 +1,44 @@
+using System.Text;
+
+namespace RehauSku.Interface
+{
+ internal class ResultBar : AbstractBar
+ {
+ private int Success { get; set; }
+ private int Replaced { get; set; }
+ private int NotFound { get; set; }
+
+ public ResultBar()
+ {
+ Success = 0;
+ Replaced = 0;
+ NotFound = 0;
+ }
+
+ public void IncrementSuccess() => Success++;
+ public void IncrementReplaced() => Replaced++;
+ public void IncrementNotFound() => NotFound++;
+
+ public override void Update()
+ {
+ StringBuilder sb = new StringBuilder();
+
+ if (Success > 0)
+ {
+ sb.Append($"Успешно экспортировано {Success} артикулов. ");
+ }
+
+ if (Replaced > 0)
+ {
+ sb.Append($"Заменено {Replaced} артикулов. ");
+ }
+
+ if (NotFound > 0)
+ {
+ sb.Append($"Не найдено {NotFound} артикулов.");
+ }
+
+ Excel.StatusBar = sb.ToString();
+ }
+ }
+}