diff options
author | Sergey Chebotar <s.chebotar@gmail.com> | 2022-01-27 09:59:33 +0300 |
---|---|---|
committer | Sergey Chebotar <s.chebotar@gmail.com> | 2022-01-27 09:59:33 +0300 |
commit | 8e3dff1788905c203509f866921957b027cb2643 (patch) | |
tree | 7d671c8f01be532bc013322c366bba35fcccaab0 /src/PriceListTools/PriceList.cs | |
parent | 233c91c71b5c68ed7c51f26731b491dac8423771 (diff) |
Extract PriceList Base Class
Diffstat (limited to 'src/PriceListTools/PriceList.cs')
-rw-r--r-- | src/PriceListTools/PriceList.cs | 83 |
1 files changed, 9 insertions, 74 deletions
diff --git a/src/PriceListTools/PriceList.cs b/src/PriceListTools/PriceList.cs index 1bf9663..5ec870e 100644 --- a/src/PriceListTools/PriceList.cs +++ b/src/PriceListTools/PriceList.cs @@ -1,83 +1,18 @@ using Microsoft.Office.Interop.Excel; -using System.Collections.Generic; -using System; namespace RehauSku.PriceListTools { internal class PriceList { - private const string amountHeader = "Кол-во"; - private const string skuHeader = "Актуальный материал"; - private const string groupHeader = "Программа"; + protected const string amountHeader = "Кол-во"; + protected const string skuHeader = "Актуальный материал"; + protected const string groupHeader = "Программа"; - public readonly Worksheet Sheet; - public readonly string Name; - public Dictionary<string, double> SkuAmount { get; private set; } + public Range amountCell { get; protected set; } + public Range skuCell { get; protected set; } + public Range groupCell { get; protected set; } - public readonly Range amountCell; - public readonly Range skuCell; - public readonly Range groupCell; - - //public Dictionary<PriceListPosition, Range> Map { get; private set; } - - public PriceList(Workbook workbook) - { - Sheet = workbook.ActiveSheet; - Name = workbook.Name + '\n' + Sheet.Name; - - amountCell = Sheet.Cells.Find(amountHeader); - skuCell = Sheet.Cells.Find(skuHeader); - groupCell = Sheet.Cells.Find(groupHeader); - - if (amountCell == null || skuCell == null || groupCell == null) - { - throw new ArgumentException($"Лист { Name } не распознан"); - } - - FillSkuAmount(); - } - - private void FillSkuAmount() - { - SkuAmount = new Dictionary<string, double>(); - - object[,] amountColumn = Sheet.Columns[amountCell.Column].Value2; - object[,] skuColumn = Sheet.Columns[skuCell.Column].Value2; - - for (int row = amountCell.Row + 1; row < amountColumn.GetLength(0); row++) - { - object amount = amountColumn[row, 1]; - object sku = skuColumn[row, 1]; - - if (amount != null && (double)amount != 0) - { - if (SkuAmount.ContainsKey(sku.ToString())) - SkuAmount[sku.ToString()] += (double)amount; - - else - SkuAmount.Add(sku.ToString(), (double)amount); - } - } - } - - //public void CreateMap() - //{ - // Range amountCell = Sheet.Cells.Find(amountHeader); - // Range skuCell = Sheet.Cells.Find(skuHeader); - // Range groupCell = Sheet.Cells.Find(groupHeader); - - // headerRowNumber = amountCell.Row; - // skuColumnNumber = skuCell.Column; - // amountColumnNumber = amountCell.Column; - // groupColumnNumber = groupCell.Column; - - // for (int row = headerRowNumber + 1; row < skuCell.Rows.Count; row++) - // { - // string sku = - // } - - //} + public Worksheet Sheet { get; protected set; } + public string Name { get; protected set; } } - -} - +}
\ No newline at end of file |