Program fixes , registering new stocks, without dbchanges

This commit is contained in:
2022-02-11 11:23:01 +01:00
parent 04ba6f6c2b
commit 02d8762ee0
14 changed files with 220 additions and 35 deletions

View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DataDomain
{
public class StockGroupModel
{
public int Id { get; set; }
public string StockGroup { get; set; }
public string StockName { get; set; }
}
}

13
PP.cmd Normal file
View File

@ -0,0 +1,13 @@
@echo off
D:
cd \Aktier\net6.0-windows
echo *** på plats \Aktier\net6.0-windows ***
copy Stocks* ..\backup\cpyback
echo *** databas backupad ***
copy D:\TommyCsharp\StockInfoCoreApp\StockInfoCore\bin\Debug\net6.0-windows\*.* .\
echo *** ny prodversion flyttad ***
copy ..\backup\cpyback\Stocks* .\
echo ************************************
echo *** Produktions uppdatering klar ***
echo ************************************
cmd /k

View File

@ -298,6 +298,66 @@ namespace StockDal
}
}
public DiTraderStockRow LoadStockMarketStockData(string searchedStock)
{
//StockMarketList = new Dictionary<string, DiTraderStockRow>();
//DumpObjects = new List<DiTraderStockRow>();
var groupedStocks = _stockRepository.GetGroupedStock(searchedStock);
var lastGroup = string.Empty;
var stockList = new List<string>();
var output = new List<DiTraderStockRow>();
foreach (var groupedStock in groupedStocks)
{
if (groupedStock.StockGroup != lastGroup)
{
if (lastGroup != string.Empty)
{
_testSettings.StockWishes = stockList.ToArray();
if (lastGroup == "ZNotFound")
foreach (var stk in stockList)
{
output = _scrapePage.SearchStockAndCollect(stk.Substring(0, 4));
}
else
output = _scrapePage.GetMyStockStatus(lastGroup);
stockList.Clear();
lastGroup = groupedStock.StockGroup;
}
else
{
lastGroup = groupedStock.StockGroup;
}
stockList.Add(groupedStock.StockId);
}
else
{
stockList.Add(groupedStock.StockId);
}
}
if (stockList.Count > 0)
{
_testSettings.StockWishes = stockList.ToArray();
if (lastGroup == "ZNotFound")
foreach (var stk in stockList)
{
output = _scrapePage.SearchStockAndCollect(stk.Substring(0, 4));
}
else
output = _scrapePage.GetMyStockStatus(lastGroup);
stockList.Clear();
}
return output[0];
//if (DumpObjects.Any())
//{
// SaveLogging();
//}
}
public void LoadStockMarketList(int persId, bool viewBrowser)
{

View File

@ -133,6 +133,8 @@ namespace StockDAL
context.SaveChanges();
}
public IEnumerable<StockGrpPers> GetStocksGroupedPerPerson(int persId)
{
using var context = new StockContext();
@ -140,12 +142,52 @@ namespace StockDAL
join stk in context.Stocks on prs.StockId equals stk.Id
join grp in context.StockGroups on stk.StockId equals grp.StockName
where prs.PersonId == persId
orderby grp.GroupName, grp.StockName
orderby grp.StockGroup, grp.StockName
select new StockGrpPers
{
PersId = persId,
StockId = stk.StockId,
StockGroup = grp.GroupName
StockGroup = grp.StockGroup
}).ToList();
return result;
}
public StockGroupModel SaveStockGroup(StockGroupModel stockGroup)
{
using var context = new StockContext();
var entity = (from sg in context.StockGroups
where sg.Id == stockGroup.Id
select sg).FirstOrDefault();
if (entity == null)
{
entity = new StockGroupModel
{
StockGroup = stockGroup.StockGroup,
StockName = stockGroup.StockName
};
context.StockGroups.Add(entity);
}
else
{
entity.StockGroup = stockGroup.StockGroup;
entity.StockName = stockGroup.StockName;
}
context.SaveChanges();
return entity;
}
public IEnumerable<StockGrpPers> GetGroupedStock(string stock)
{
using var context = new StockContext();
var result = (from grp in context.StockGroups
where grp.StockName == stock
select new StockGrpPers
{
PersId = 0,
StockId = grp.StockName,
StockGroup = grp.StockGroup
}).ToList();
return result;
}
@ -184,5 +226,17 @@ namespace StockDAL
throw new InvalidOperationException(ex.Message);
}
}
public List<string> GetStockNames()
{
using var context = new StockContext();
var output = (from stg in context.StockGroups
orderby stg.StockName
select stg.StockName).ToList();
return output;
}
}
}

View File

@ -32,8 +32,8 @@ namespace StockDAL
Thread.Sleep(500);
chooseList.SelectDropDownByText(listText);
Thread.Sleep(800);
var stockListTuple = tblList.SimpleReadTablePartly(_testSettings.StockWishes, _testSettings.StocWishCols);
return stockListTuple;
var stockList = tblList.SimpleReadTablePartly(_testSettings.StockWishes, _testSettings.StocWishCols);
return stockList;
}
public List<DiTraderStockRow> SearchStockAndCollect(string stockName)

View File

@ -16,5 +16,6 @@ namespace StockDal.Interface
void LoadStockMarketList(int persId);
void LoadStockMarketList(int persId, bool viewBrowser);
void RefreshMarketList(int persId);
DiTraderStockRow LoadStockMarketStockData(string searchedStock);
}
}

View File

@ -20,5 +20,8 @@ namespace StockDAL.Interface
void UpdateActualForSell(int id, int sellAmount, decimal sellPrice, DateTime sellDate);
void UpdateActualPrice(int id, decimal price);
IEnumerable<StockGrpPers> GetStocksGroupedPerPerson(int persId);
List<string> GetStockNames();
IEnumerable<StockGrpPers> GetGroupedStock(string stock);
StockGroupModel SaveStockGroup(StockGroupModel stockGroup);
}
}

Binary file not shown.

BIN
StockInfoCore/Stocks.db-shm Normal file

Binary file not shown.

View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,4 +1,5 @@
using DataDomain;
using StockDal.Interface;
using StockDAL.Interface;
using System;
using System.Collections.Generic;
@ -16,25 +17,34 @@ namespace StockInfoCore
{
Color hdr = Color.Red;
private readonly IStockRepository _stockRepository;
private readonly IStockMarketRepository _stockMarketRepository;
private readonly IStockScrapePage _scrapePage;
public List<string> StockNames { get; set; }
public Dictionary<string, DiTraderStockRow> Stocks { get; set; }
public List<StockMember> RegisteredStocks { get; set; } = new List<StockMember>();
public frmRegisterStock(IStockRepository stockRepository)
public StockGroupModel StockGroupTmp { get; set; }
public frmRegisterStock(IStockRepository stockRepository,
IStockMarketRepository stockMarketRepository,
IStockScrapePage scrapePage)
{
InitializeComponent();
_stockRepository = stockRepository;
_stockMarketRepository = stockMarketRepository;
_scrapePage = scrapePage;
}
private void LoadStockCombo()
{
if (Stocks.Count() > 0)
{
foreach (var key in Stocks.Keys)
cmbStockChoser.Items.Clear();
foreach (var key in StockNames)
{
cmbStockChoser.Items.Add(key);
}
}
}
@ -45,10 +55,13 @@ namespace StockInfoCore
private void frmRegisterStock_Shown(object sender, EventArgs e)
{
StockNames = _stockRepository.GetStockNames();
LoadStockCombo();
}
private void cmbStockChoser_SelectedIndexChanged(object sender, EventArgs e)
{
if (Stocks.ContainsKey(cmbStockChoser.SelectedItem.ToString()))
{
var stockChosen = Stocks[cmbStockChoser.SelectedItem.ToString()];
txtStockExtId.Text = stockChosen.StockName;
@ -73,6 +86,26 @@ namespace StockInfoCore
txtLatestSoldDate.Text = string.Empty;
txtLatestSoldPrice.Text = string.Empty;
}
}
else if (StockNames.Contains(cmbStockChoser.SelectedItem.ToString()))
{
var stockChosen = _stockMarketRepository.LoadStockMarketStockData(cmbStockChoser.SelectedItem.ToString());
txtStockExtId.Text = stockChosen.StockName;
txtActValue.Text = stockChosen.LatestPrice.ToString();
txtActDate.Text = (DateTime.Today + stockChosen.TimeOfDay).ToString();
}
else
{
var stockChosen = _scrapePage.SearchStockAndCollect(cmbStockChoser.Text.Substring(0, 4));
if (stockChosen.Count > 0)
{
txtStockExtId.Text = stockChosen[0].StockName;
txtActValue.Text = stockChosen[0].LatestPrice.ToString();
txtActDate.Text = (DateTime.Today + stockChosen[0].TimeOfDay).ToString();
StockGroupTmp.StockGroup = "ZNotFound";
StockGroupTmp.StockName = stockChosen[0].StockName;
}
}
}
@ -134,7 +167,13 @@ namespace StockInfoCore
private void btnSaveToDB_Click(object sender, EventArgs e)
{
if (RegisteredStocks.Count > 0)
{
_stockRepository.InsertMany(RegisteredStocks);
lwRegBuffer.Clear();
RegisteredStocks.Clear();
_stockRepository.SaveStockGroup(StockGroupTmp);
}
}
private void txtBoughtAmount_TextChanged(object sender, EventArgs e)