Files
StockInfoCoreApp/StockInfoCore/frmUtilities.cs

84 lines
2.8 KiB
C#

using BrowserHelper.Settings;
using DataDomain;
using StockDal.Interface;
using StockDAL.Interface;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace StockInfoCore
{
public partial class frmUtilities : Form
{
private readonly TestSettings _testSettings;
private readonly IStockScrapePage _stockScrapePage;
private readonly IStockRepository _stockRepository;
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<StockGroupModel>();
var znotfounds = _testSettings.ZNotFoundStocks;
var rowNr = 0;
foreach (var group in groupNames)
{
var biggest = groupStockList.Count>0?
groupStockList.Aggregate((g1, g2) => g1.Id > g2.Id ? g1 : g2)
:null;
if(biggest != null)
groupStockList.AddRange(_stockScrapePage.GetGroupStocksList(group,biggest.Id));
else
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");
}
}
}