Program fixes , registering new stocks, without dbchanges
This commit is contained in:
15
DataDomain/StockGroupModel.cs
Normal file
15
DataDomain/StockGroupModel.cs
Normal 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
13
PP.cmd
Normal 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
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
BIN
StockInfoCore/Stocks.db-shm
Normal file
Binary file not shown.
0
StockInfoCore/Stocks.db-wal
Normal file
0
StockInfoCore/Stocks.db-wal
Normal file
BIN
StockInfoCore/TillfBackup/Stocks.db
Normal file
BIN
StockInfoCore/TillfBackup/Stocks.db
Normal file
Binary file not shown.
BIN
StockInfoCore/TillfBackup/Stocks.db-shm
Normal file
BIN
StockInfoCore/TillfBackup/Stocks.db-shm
Normal file
Binary file not shown.
BIN
StockInfoCore/TillfBackup/Stocks.db-wal
Normal file
BIN
StockInfoCore/TillfBackup/Stocks.db-wal
Normal file
Binary file not shown.
@ -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)
|
||||
|
||||
Reference in New Issue
Block a user