diff --git a/BrowserHelper/Settings/TestSettings.cs b/BrowserHelper/Settings/TestSettings.cs
index 88731fb..d578c8a 100644
--- a/BrowserHelper/Settings/TestSettings.cs
+++ b/BrowserHelper/Settings/TestSettings.cs
@@ -12,5 +12,7 @@ namespace BrowserHelper.Settings
public string[] StockWishes { get; set; }
public string[] StocWishCols { get; set; }
public string[] StockGroups { get; set; }
+ public string[] ZNotFoundStocks { get; set; }
+
}
}
diff --git a/DatamodelLibrary/DatamodelLibrary.csproj b/DatamodelLibrary/DatamodelLibrary.csproj
index 9b9b4a7..b834c30 100644
--- a/DatamodelLibrary/DatamodelLibrary.csproj
+++ b/DatamodelLibrary/DatamodelLibrary.csproj
@@ -7,6 +7,7 @@
+
diff --git a/DatamodelLibrary/StockContext.cs b/DatamodelLibrary/StockContext.cs
index 4e2fe2b..0a8ad83 100644
--- a/DatamodelLibrary/StockContext.cs
+++ b/DatamodelLibrary/StockContext.cs
@@ -1,5 +1,7 @@
-using DataDomain;
+using BrowserHelper.Settings;
+using DataDomain;
using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Options;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -10,6 +12,7 @@ namespace DatamodelLibrary
{
public class StockContext : DbContext
{
+
public DbSet Stocks { get; set; }
public DbSet Persons { get; set; }
public DbSet Addresses { get; set; }
@@ -17,7 +20,9 @@ namespace DatamodelLibrary
public DbSet BackupRegings { get; set; }
public DbSet StockGroups { get; set; }
+
protected override void OnConfiguring(DbContextOptionsBuilder options)
- => options.UseSqlite(@"Data Source=.\Stocks.db");
+ => options.UseSqlite("Data Source=C:\\Aktier\\net6.0-windows\\NewData\\Stocks.db");
+ //=> options.UseSqlite(@"Data Source=.\Stocks.db");
}
}
diff --git a/StockDAL/StockRepository.cs b/StockDAL/StockRepository.cs
index 15b377d..51b1513 100644
--- a/StockDAL/StockRepository.cs
+++ b/StockDAL/StockRepository.cs
@@ -176,6 +176,25 @@ namespace StockDAL
return result;
}
+ public bool EmptyStockGroups()
+ {
+ using var context = new StockContext();
+ try
+ {
+ var groupRows = from g in context.StockGroups
+ select g;
+ foreach (var row in groupRows)
+ {
+ context.StockGroups.Remove(row);
+ }
+ context.SaveChanges();
+ return true;
+ }
+ catch (Exception ex)
+ {
+ return false;
+ }
+ }
public StockGroupModel SaveStockGroup(StockGroupModel stockGroup)
{
diff --git a/StockDAL/StockScrapePage.cs b/StockDAL/StockScrapePage.cs
index 220487a..ef882ad 100644
--- a/StockDAL/StockScrapePage.cs
+++ b/StockDAL/StockScrapePage.cs
@@ -92,9 +92,9 @@ namespace StockDAL
{
var resList = new List();
var nr = startNo;
- Thread.Sleep(500);
+ Thread.Sleep(1000);
chooseList.SelectDropDownByText(listText);
- Thread.Sleep(3000);
+ Thread.Sleep(5000);
var stocklist = tblList.ReadHandledStock();
foreach (var stock in stocklist)
{
diff --git a/StockDal.Interface/IStockRepository.cs b/StockDal.Interface/IStockRepository.cs
index 283095b..b568cfb 100644
--- a/StockDal.Interface/IStockRepository.cs
+++ b/StockDal.Interface/IStockRepository.cs
@@ -25,5 +25,6 @@ namespace StockDAL.Interface
List GetStockNames();
IEnumerable GetGroupedStock(string stock);
StockGroupModel SaveStockGroup(StockGroupModel stockGroup);
+ bool EmptyStockGroups();
}
}
diff --git a/StockInfoCore/appsettings.json b/StockInfoCore/appsettings.json
index 8b99d94..9aff5a0 100644
--- a/StockInfoCore/appsettings.json
+++ b/StockInfoCore/appsettings.json
@@ -1,6 +1,6 @@
{
"BrowserType": "chrome",
- "Headless" : true,
+ "Headless": true,
"ApplicationUrl": "https://finansportalen.millistream.com/shares.php",
"TimeoutInterval": 30,
"StockWishes": [ "Arion Bank SDB", "Boliden", "Ericsson A", "Getinge B", "Investor A", "SAS", "Securitas B", "SSAB A", "Handelsbanken A", "Swedbank A" ],
@@ -16,5 +16,6 @@
"NGM Equity",
"beQuoted",
"Nordic SME"
- ]
+ ],
+ "ZNotFoundStocks": [ "Pfizer" ]
}
\ No newline at end of file
diff --git a/StockInfoCore/frmUtilities.cs b/StockInfoCore/frmUtilities.cs
index 2bbbd0c..9d936e6 100644
--- a/StockInfoCore/frmUtilities.cs
+++ b/StockInfoCore/frmUtilities.cs
@@ -18,18 +18,22 @@ namespace StockInfoCore
{
private readonly TestSettings _testSettings;
private readonly IStockScrapePage _stockScrapePage;
+ private readonly IStockRepository _stockRepository;
- public frmUtilities(TestSettings testSettings,IStockScrapePage stockScrapePage)
+ public frmUtilities(TestSettings testSettings,IStockScrapePage stockScrapePage,IStockRepository stockRepository)
{
InitializeComponent();
_testSettings = testSettings;
_stockScrapePage = stockScrapePage;
+ _stockRepository = stockRepository;
}
private void btnReadStockLists_Click(object sender, EventArgs e)
{
+ Cursor = Cursors.WaitCursor;
var groupNames = _testSettings.StockGroups;
var groupStockList = new List();
+ var znotfounds = _testSettings.ZNotFoundStocks;
var rowNr = 0;
foreach (var group in groupNames)
{
@@ -42,13 +46,36 @@ namespace StockInfoCore
groupStockList.AddRange(_stockScrapePage.GetGroupStocksList(group));
}
+ if(groupStockList.Count > 0)
+ {
+ lvStockGroups.Items.Clear();
+
+ if(! _stockRepository.EmptyStockGroups())
+ {
+ MessageBox.Show("Misslyckat borttag av StockGroups!");
+ return;
+ }
+ }
+
foreach(var group in groupStockList)
{
+ _stockRepository.SaveStockGroup(group);
var x = lvStockGroups.Items.Add(group.Id.ToString());
x.SubItems.Add(group.StockGroup.ToString());
x.SubItems.Add(group.StockName.ToString());
}
+ foreach(var stk in znotfounds)
+ {
+ var item = _stockRepository.SaveStockGroup(new StockGroupModel { StockGroup = "ZNotFound", StockName = stk });
+ var x = lvStockGroups.Items.Add(item.Id.ToString());
+ x.SubItems.Add(item.StockGroup.ToString());
+ x.SubItems.Add(item.StockName.ToString());
+ }
+
+ Cursor = Cursors.Default;
+
+
lvStockGroups.Refresh();
//_stockScrapePage.GetStocksPerList("OMX Stockholm Large Cap");
}