aboutsummaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/AddIn/AddIn.cs1
-rw-r--r--Source/AddIn/FileDialog.cs24
-rw-r--r--Source/AddIn/RegistryUtil.cs57
-rw-r--r--Source/Assistant/ParseUtil.cs45
-rw-r--r--Source/Assistant/SkuExtensions.cs (renamed from Source/Assistant/SkuExtension.cs)2
-rw-r--r--Source/DataExport/Exporter.cs12
-rw-r--r--Source/Ribbon/RibbonController.cs7
-rw-r--r--Source/Settings/SettingsForm.cs7
8 files changed, 91 insertions, 64 deletions
diff --git a/Source/AddIn/AddIn.cs b/Source/AddIn/AddIn.cs
index 4a26f55..08b6dcf 100644
--- a/Source/AddIn/AddIn.cs
+++ b/Source/AddIn/AddIn.cs
@@ -22,6 +22,7 @@ namespace RehauSku
{
RegisterFunctions();
IntelliSenseServer.Install();
+ RegistryUtil.Initialize();
}
public void AutoClose()
diff --git a/Source/AddIn/FileDialog.cs b/Source/AddIn/FileDialog.cs
new file mode 100644
index 0000000..a7e2144
--- /dev/null
+++ b/Source/AddIn/FileDialog.cs
@@ -0,0 +1,24 @@
+using System.Windows.Forms;
+
+namespace RehauSku
+{
+ static class FileDialog
+ {
+ public static string GetFilePath()
+ {
+ string filePath = string.Empty;
+
+ using (OpenFileDialog dialog = new OpenFileDialog())
+ {
+ dialog.Filter = "Все файлы (*.*)|*.*";
+
+ if (dialog.ShowDialog() == DialogResult.OK)
+ {
+ filePath = dialog.FileName;
+ }
+ }
+
+ return filePath;
+ }
+ }
+}
diff --git a/Source/AddIn/RegistryUtil.cs b/Source/AddIn/RegistryUtil.cs
index 6ab7682..19f48b8 100644
--- a/Source/AddIn/RegistryUtil.cs
+++ b/Source/AddIn/RegistryUtil.cs
@@ -1,42 +1,61 @@
using Microsoft.Win32;
+using System.IO;
namespace RehauSku
{
static class RegistryUtil
{
- public static string PriceListPath
+ private static string _priceListPath;
+ private static int? _storeResponseOrder;
+ private static RegistryKey _RootKey { get; set; }
+
+ public static void Initialize()
{
- get => (string)_RootKey.GetValue("PriceListPath");
+ _RootKey = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\REHAU\SkuAssist");
+ _priceListPath = _RootKey.GetValue("PriceListPath") as string;
+ _storeResponseOrder = _RootKey.GetValue("StoreResponseOrder") as int?;
}
- public static ResponseOrder StoreResponseOrder
+ public static bool IsPriceListPathEmpty()
{
- get => (ResponseOrder)_RootKey.GetValue("StoreResponseOrder");
+ return string.IsNullOrEmpty(_priceListPath);
}
- private static RegistryKey _RootKey
+ public static string PriceListPath
{
get
{
- return _OpenRootKey() ?? _CreateRootKey();
- }
- }
+ if (IsPriceListPathEmpty() || !File.Exists(_priceListPath))
+ {
+ string fileName = FileDialog.GetFilePath();
+ _priceListPath = fileName;
+ _RootKey.SetValue("PriceListPath", fileName);
+ return _priceListPath;
+ }
- private static RegistryKey _OpenRootKey()
- {
- return Registry.CurrentUser
- .OpenSubKey(@"SOFTWARE\REHAU\SkuAssist");
+ else
+ {
+ return _priceListPath;
+ }
+ }
}
- private static RegistryKey _CreateRootKey()
+ public static ResponseOrder StoreResponseOrder
{
- RegistryKey key = Registry.CurrentUser
- .CreateSubKey(@"SOFTWARE\REHAU\SkuAssist");
-
- key.SetValue("PriceListPath", @"D:\Dropbox\Рабочее\Таблица заказов ИС EAE_2021.xlsm");
- key.SetValue("StoreResponseOrder", 0);
+ get
+ {
+ if (_storeResponseOrder == null)
+ {
+ _RootKey.SetValue("StoreResponseOrder", (int)ResponseOrder.Default);
+ _storeResponseOrder = (int)ResponseOrder.Default;
+ return (ResponseOrder)_storeResponseOrder.Value;
+ }
- return key;
+ else
+ {
+ return (ResponseOrder)_storeResponseOrder.Value;
+ }
+ }
}
}
}
diff --git a/Source/Assistant/ParseUtil.cs b/Source/Assistant/ParseUtil.cs
index 571c6b0..a93c658 100644
--- a/Source/Assistant/ParseUtil.cs
+++ b/Source/Assistant/ParseUtil.cs
@@ -1,10 +1,8 @@
using AngleSharp;
using AngleSharp.Dom;
using Newtonsoft.Json;
-using System;
using System.Linq;
using System.Threading.Tasks;
-using System.Windows.Forms;
namespace RehauSku.Assistant
{
@@ -20,36 +18,27 @@ namespace RehauSku.Assistant
public static IProduct GetProduct(IDocument document)
{
- try
- {
- string script = document
- .Scripts
- .Where(s => s.InnerHtml.Contains("dataLayer"))
- .FirstOrDefault()
- .InnerHtml;
+ string script = document
+ .Scripts
+ .Where(s => s.InnerHtml.Contains("dataLayer"))
+ .FirstOrDefault()
+ .InnerHtml;
- string json = script
- .Substring(script.IndexOf("push(") + 5)
- .TrimEnd(new[] { ')', ';', '\n', ' ' });
+ string json = script
+ .Substring(script.IndexOf("push(") + 5)
+ .TrimEnd(new[] { ')', ';', '\n', ' ' });
- if (!json.Contains("impressions"))
- return null;
-
- StoreResponce storeResponse = JsonConvert.DeserializeObject<StoreResponce>(json);
- IProduct product = storeResponse
- .Ecommerce
- .Impressions
- .Where(p => p.Id.IsRehauSku())
- .FirstOrDefault();
+ if (!json.Contains("impressions"))
+ return null;
- return product;
- }
+ StoreResponce storeResponse = JsonConvert.DeserializeObject<StoreResponce>(json);
+ IProduct product = storeResponse
+ .Ecommerce
+ .Impressions
+ .Where(p => p.Id.IsRehauSku())
+ .FirstOrDefault();
- catch (NullReferenceException e)
- {
- MessageBox.Show(e.Message, "Ошибка получения данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
- return null;
- }
+ return product;
}
}
} \ No newline at end of file
diff --git a/Source/Assistant/SkuExtension.cs b/Source/Assistant/SkuExtensions.cs
index 51aaf6c..e39807b 100644
--- a/Source/Assistant/SkuExtension.cs
+++ b/Source/Assistant/SkuExtensions.cs
@@ -2,7 +2,7 @@
namespace RehauSku.Assistant
{
- static class SkuExtension
+ static class SkuExtensions
{
public static bool IsRehauSku(this string line)
{
diff --git a/Source/DataExport/Exporter.cs b/Source/DataExport/Exporter.cs
index 483dd0e..95b3186 100644
--- a/Source/DataExport/Exporter.cs
+++ b/Source/DataExport/Exporter.cs
@@ -34,7 +34,7 @@ namespace RehauSku.DataExport
SelectedCells.GetLength(1) == 2;
}
- public void FillSkuAmountDict()
+ private void FillSkuAmountDict()
{
SkuAmount = new Dictionary<string, double>();
int rowsCount = SelectedCells.GetLength(0);
@@ -73,20 +73,22 @@ namespace RehauSku.DataExport
}
}
- public void FillPriceList()
+ public void FillNewPriceList()
{
+ FillSkuAmountDict();
string exportFile = _GetExportFullPath();
File.Copy(RegistryUtil.PriceListPath, exportFile, true);
Workbook wb = xlApp.Workbooks.Open(exportFile);
Worksheet ws = wb.ActiveSheet;
- Range amountCell = ws.Cells.Find("Кол-во");
+ int amountColumn = ws.Cells.Find("Кол-во").Column;
+ int skuColumn = ws.Cells.Find("Актуальный материал").Column;
foreach (KeyValuePair<string, double> kvp in SkuAmount)
{
- Range cell = ws.Cells.Find(kvp.Key);
- ws.Cells[cell.Row, amountCell.Column].Value = kvp.Value;
+ Range cell = ws.Columns[skuColumn].Find(kvp.Key);
+ ws.Cells[cell.Row, amountColumn].Value = kvp.Value;
}
ws.Cells.AutoFilter(7, "<>");
diff --git a/Source/Ribbon/RibbonController.cs b/Source/Ribbon/RibbonController.cs
index 7e15d09..cfe4532 100644
--- a/Source/Ribbon/RibbonController.cs
+++ b/Source/Ribbon/RibbonController.cs
@@ -42,16 +42,15 @@ namespace RehauSku.Ribbon
else
{
- dw.FillSkuAmountDict();
- dw.FillPriceList();
+ dw.FillNewPriceList();
}
}
}
-
public void OnSettingsPressed(IRibbonControl control)
{
- Application.Run(new Settings.SettingsForm());
+ Form settingsForm = new Settings.SettingsForm();
+ settingsForm.Show();
}
}
}
diff --git a/Source/Settings/SettingsForm.cs b/Source/Settings/SettingsForm.cs
index b87ac5c..59edf22 100644
--- a/Source/Settings/SettingsForm.cs
+++ b/Source/Settings/SettingsForm.cs
@@ -15,13 +15,6 @@ namespace RehauSku.Settings
public SettingsForm()
{
InitializeComponent();
-
- FormClosing += (sender, eventArgs) =>
- {
- MessageBox.Show("ok");
- };
-
-
}
private void button1_Click(object sender, EventArgs e)