From 8e3dff1788905c203509f866921957b027cb2643 Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Thu, 27 Jan 2022 09:59:33 +0300 Subject: Extract PriceList Base Class --- src/PriceListTools/PriceList.cs | 83 +++++------------------------------------ 1 file changed, 9 insertions(+), 74 deletions(-) (limited to 'src/PriceListTools/PriceList.cs') 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 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 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(); - - 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 -- cgit v1.2.3