Extra utility-page created , putting all stockgroups in place

This commit is contained in:
2022-10-12 21:05:33 +02:00
parent 6e2eb207a3
commit 0cb51d70cb
8 changed files with 63 additions and 7 deletions

View File

@ -12,5 +12,7 @@ namespace BrowserHelper.Settings
public string[] StockWishes { get; set; } public string[] StockWishes { get; set; }
public string[] StocWishCols { get; set; } public string[] StocWishCols { get; set; }
public string[] StockGroups { get; set; } public string[] StockGroups { get; set; }
public string[] ZNotFoundStocks { get; set; }
} }
} }

View File

@ -7,6 +7,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\BrowserHelper\BrowserHelper.csproj" />
<ProjectReference Include="..\DataDomain\DataDomain.csproj" /> <ProjectReference Include="..\DataDomain\DataDomain.csproj" />
</ItemGroup> </ItemGroup>

View File

@ -1,5 +1,7 @@
using DataDomain; using BrowserHelper.Settings;
using DataDomain;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Options;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@ -10,6 +12,7 @@ namespace DatamodelLibrary
{ {
public class StockContext : DbContext public class StockContext : DbContext
{ {
public DbSet<StockMember> Stocks { get; set; } public DbSet<StockMember> Stocks { get; set; }
public DbSet<Person> Persons { get; set; } public DbSet<Person> Persons { get; set; }
public DbSet<Address> Addresses { get; set; } public DbSet<Address> Addresses { get; set; }
@ -17,7 +20,9 @@ namespace DatamodelLibrary
public DbSet<BackupRegister> BackupRegings { get; set; } public DbSet<BackupRegister> BackupRegings { get; set; }
public DbSet<StockGroupModel> StockGroups { get; set; } public DbSet<StockGroupModel> StockGroups { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder options) 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");
} }
} }

View File

@ -176,6 +176,25 @@ namespace StockDAL
return result; 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) public StockGroupModel SaveStockGroup(StockGroupModel stockGroup)
{ {

View File

@ -92,9 +92,9 @@ namespace StockDAL
{ {
var resList = new List<StockGroupModel>(); var resList = new List<StockGroupModel>();
var nr = startNo; var nr = startNo;
Thread.Sleep(500); Thread.Sleep(1000);
chooseList.SelectDropDownByText(listText); chooseList.SelectDropDownByText(listText);
Thread.Sleep(3000); Thread.Sleep(5000);
var stocklist = tblList.ReadHandledStock(); var stocklist = tblList.ReadHandledStock();
foreach (var stock in stocklist) foreach (var stock in stocklist)
{ {

View File

@ -25,5 +25,6 @@ namespace StockDAL.Interface
List<string> GetStockNames(); List<string> GetStockNames();
IEnumerable<StockGrpPers> GetGroupedStock(string stock); IEnumerable<StockGrpPers> GetGroupedStock(string stock);
StockGroupModel SaveStockGroup(StockGroupModel stockGroup); StockGroupModel SaveStockGroup(StockGroupModel stockGroup);
bool EmptyStockGroups();
} }
} }

View File

@ -1,6 +1,6 @@
{ {
"BrowserType": "chrome", "BrowserType": "chrome",
"Headless" : true, "Headless": true,
"ApplicationUrl": "https://finansportalen.millistream.com/shares.php", "ApplicationUrl": "https://finansportalen.millistream.com/shares.php",
"TimeoutInterval": 30, "TimeoutInterval": 30,
"StockWishes": [ "Arion Bank SDB", "Boliden", "Ericsson A", "Getinge B", "Investor A", "SAS", "Securitas B", "SSAB A", "Handelsbanken A", "Swedbank A" ], "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", "NGM Equity",
"beQuoted", "beQuoted",
"Nordic SME" "Nordic SME"
] ],
"ZNotFoundStocks": [ "Pfizer" ]
} }

View File

@ -18,18 +18,22 @@ namespace StockInfoCore
{ {
private readonly TestSettings _testSettings; private readonly TestSettings _testSettings;
private readonly IStockScrapePage _stockScrapePage; private readonly IStockScrapePage _stockScrapePage;
private readonly IStockRepository _stockRepository;
public frmUtilities(TestSettings testSettings,IStockScrapePage stockScrapePage) public frmUtilities(TestSettings testSettings,IStockScrapePage stockScrapePage,IStockRepository stockRepository)
{ {
InitializeComponent(); InitializeComponent();
_testSettings = testSettings; _testSettings = testSettings;
_stockScrapePage = stockScrapePage; _stockScrapePage = stockScrapePage;
_stockRepository = stockRepository;
} }
private void btnReadStockLists_Click(object sender, EventArgs e) private void btnReadStockLists_Click(object sender, EventArgs e)
{ {
Cursor = Cursors.WaitCursor;
var groupNames = _testSettings.StockGroups; var groupNames = _testSettings.StockGroups;
var groupStockList = new List<StockGroupModel>(); var groupStockList = new List<StockGroupModel>();
var znotfounds = _testSettings.ZNotFoundStocks;
var rowNr = 0; var rowNr = 0;
foreach (var group in groupNames) foreach (var group in groupNames)
{ {
@ -42,13 +46,36 @@ namespace StockInfoCore
groupStockList.AddRange(_stockScrapePage.GetGroupStocksList(group)); 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) foreach(var group in groupStockList)
{ {
_stockRepository.SaveStockGroup(group);
var x = lvStockGroups.Items.Add(group.Id.ToString()); var x = lvStockGroups.Items.Add(group.Id.ToString());
x.SubItems.Add(group.StockGroup.ToString()); x.SubItems.Add(group.StockGroup.ToString());
x.SubItems.Add(group.StockName.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(); lvStockGroups.Refresh();
//_stockScrapePage.GetStocksPerList("OMX Stockholm Large Cap"); //_stockScrapePage.GetStocksPerList("OMX Stockholm Large Cap");
} }