From 0cb51d70cb0d13e1941e0fca13cbbbb0187baa05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tommy=20=C3=96man?= Date: Wed, 12 Oct 2022 21:05:33 +0200 Subject: [PATCH] Extra utility-page created , putting all stockgroups in place --- BrowserHelper/Settings/TestSettings.cs | 2 ++ DatamodelLibrary/DatamodelLibrary.csproj | 1 + DatamodelLibrary/StockContext.cs | 9 ++++++-- StockDAL/StockRepository.cs | 19 ++++++++++++++++ StockDAL/StockScrapePage.cs | 4 ++-- StockDal.Interface/IStockRepository.cs | 1 + StockInfoCore/appsettings.json | 5 ++-- StockInfoCore/frmUtilities.cs | 29 +++++++++++++++++++++++- 8 files changed, 63 insertions(+), 7 deletions(-) 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"); }