diff options
Diffstat (limited to 'src/Interface')
-rw-r--r-- | src/Interface/AbstractBar.cs | 11 | ||||
-rw-r--r-- | src/Interface/ProgressBar.cs | 9 | ||||
-rw-r--r-- | src/Interface/ResultBar.cs | 44 |
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(); + } + } +} |