aboutsummaryrefslogtreecommitdiff
path: root/Source/Assistant
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Assistant')
-rw-r--r--Source/Assistant/SkuAssist.cs44
1 files changed, 27 insertions, 17 deletions
diff --git a/Source/Assistant/SkuAssist.cs b/Source/Assistant/SkuAssist.cs
index a524daa..6d72a72 100644
--- a/Source/Assistant/SkuAssist.cs
+++ b/Source/Assistant/SkuAssist.cs
@@ -7,6 +7,7 @@ using System.Linq;
using System.Runtime.Caching;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
+using System.Windows.Forms;
namespace Rehau.Sku.Assist
{
@@ -30,27 +31,36 @@ namespace Rehau.Sku.Assist
}
public static IProduct GetProduct(IDocument document)
{
- string script = document
- .Scripts
- .Where(s => s.InnerHtml.Contains("dataLayer"))
- .First()
- .InnerHtml;
+ try
+ {
+ 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;
+ if (!json.Contains("impressions"))
+ return null;
- StoreResponce storeResponse = JsonConvert.DeserializeObject<StoreResponce>(json);
- IProduct product = storeResponse
- .Ecommerce
- .Impressions
- .Where(p => p.Id.IsRehauSku())
- .FirstOrDefault();
+ StoreResponce storeResponse = JsonConvert.DeserializeObject<StoreResponce>(json);
+ IProduct product = storeResponse
+ .Ecommerce
+ .Impressions
+ .Where(p => p.Id.IsRehauSku())
+ .FirstOrDefault();
+
+ return product;
+ }
- return product;
+ catch (NullReferenceException e)
+ {
+ MessageBox.Show(e.Message, "Ошибка получения данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return null;
+ }
}
public static object GetProduct(string request, ProductField field)
{