diff options
author | Sergey Chebotar <s.chebotar@gmail.com> | 2021-12-06 19:49:10 +0300 |
---|---|---|
committer | Sergey Chebotar <s.chebotar@gmail.com> | 2021-12-06 19:49:10 +0300 |
commit | fa195001bc1f90c28a08ac05aac0d47344e517a6 (patch) | |
tree | b7b18e8bccbaed10e19bc986d78db7717ead4c74 /Source/DataWriter/DataWriter.cs | |
parent | d47e5d5282e89d1fcc69bf3907aa459277fcc104 (diff) |
Add DataWriter class
Diffstat (limited to 'Source/DataWriter/DataWriter.cs')
-rw-r--r-- | Source/DataWriter/DataWriter.cs | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/Source/DataWriter/DataWriter.cs b/Source/DataWriter/DataWriter.cs deleted file mode 100644 index 76ed4ff..0000000 --- a/Source/DataWriter/DataWriter.cs +++ /dev/null @@ -1,107 +0,0 @@ -using ExcelDna.Integration; -using Microsoft.Office.Interop.Excel; -using Rehau.Sku.Assist; -using System; -using System.Collections.Generic; -using System.Linq; -using System.IO; - -namespace Rehau.Sku -{ - public class DataWriter : IDisposable - { - private Application xlApp; - private Dictionary<string, double> SkuAmount { get; set; } - private object[,] SelectedCells { get; set; } - private string FileName { get; set; } - private string ExportFileName { get; set; } - - public DataWriter() - { - this.xlApp = (Application)ExcelDnaUtil.Application; - this.FileName = this.xlApp.ActiveWorkbook.FullName; - - GetSelectedCells(); - } - - private void GetSelectedCells() - { - Range selection = xlApp.Selection; - this.SelectedCells = (object[,])selection.Value2; - } - - public bool IsRangeValid() - { - return SelectedCells != null && - SelectedCells.GetLength(1) == 2; - } - - public void FillSkuAmountDict() - { - SkuAmount = new Dictionary<string, double>(); - int rowsCount = SelectedCells.GetLength(0); - - for (int row = 1; row <= rowsCount; row++) - { - if (SelectedCells[row, 1] == null || SelectedCells[row, 2] == null) - continue; - - string sku = null; - double? amount = null; - - for (int column = 1; column <= 2; column++) - { - object current = SelectedCells[row, column]; - - if (current.GetType() == typeof(string) - && SkuAssist.IsRehauSku((string)current)) - sku = (string)current; - - else if (current.GetType() == typeof(string) - && double.TryParse((string)current, out _)) - amount = double.Parse((string)current); - - else if (current.GetType() == typeof(double)) - amount = (double)current; - } - - if (sku == null || amount == null) - continue; - - if (SkuAmount.ContainsKey(sku)) - SkuAmount[sku] += amount.Value; - else - SkuAmount.Add(sku, amount.Value); - } - } - - public void DownloadPriceList() - { - Uri linkToPrice = new Uri(@"https://www.rehau.com/downloads/831332/%D0%BF%D1%80%D0%B0%D0%B9%D1%81-%D0%BB%D0%B8%D1%81%D1%82-%D0%B2%D0%B8%D1%81-exel-2021.xlsm"); - - if (FileName.Contains(':')) - ExportFileName = string.Join(".", FileName.Split('.').Select((x, i) => i == 0 ? string.Concat(x, "~") : "xlsm")); - else - ExportFileName = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\Прайс-лист REHAU.xlsm"; - - HttpClientUtil.DownloadFile(linkToPrice, ExportFileName); - } - - public void GetPriceListWB() - { - Workbook wb = xlApp.Workbooks.Open(ExportFileName); - } - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - protected virtual void Dispose(bool disposing) - { - - } - } -} - |