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

@ -34,9 +34,9 @@ namespace StockDal
private readonly IStockScrapePage _scrapePage;
public StockMarketRepository(
IStockPersonConnect stockPersonConnect,
IStockPersonConnect stockPersonConnect,
IStockRepository stockRepository,
TestSettings testSettings,
TestSettings testSettings,
IStockScrapePage scrapePage)
{
ViewBrowser = false;
@ -84,7 +84,7 @@ namespace StockDal
TextResults.Append("\r\n");
}
// var oxe = StockMarketList;
// var oxe = StockMarketList;
}
private void SaveLogging()
@ -153,13 +153,13 @@ namespace StockDal
}
case 9:
{
SaveRow.TimeOfDay = value==""?TimeSpan.Parse("00:01"): TimeSpan.Parse(value);
SaveRow.TimeOfDay = value == "" ? TimeSpan.Parse("00:01") : TimeSpan.Parse(value);
//StockMarketList.Add(SaveRow.StockName, SaveRow);
try
{
StockMarketList.Add(SaveRow.StockName, SaveRow);
}
catch (ArgumentException )
catch (ArgumentException)
{
try
{
@ -168,7 +168,7 @@ namespace StockDal
catch (Exception)
{
DumpObjects.Add(SaveRow);
}
}
}
break;
@ -207,7 +207,7 @@ namespace StockDal
var url2 = "https://trader.di.se/index.php/stocklist/index/2055?list=7116";
var url3 = "https://trader.di.se/index.php/stocklist/index/2055?list=7127";
//var url1 = "https://www.finansportalen.se/aktiekurser/";
driver.Navigate().GoToUrl(burl2.HasValue? (burl2.Value ? url2 : url):url3);
driver.Navigate().GoToUrl(burl2.HasValue ? (burl2.Value ? url2 : url) : url3);
}
catch
@ -219,7 +219,7 @@ namespace StockDal
private void saveStockData(List<DiTraderStockRow> saveRow)
{
foreach(var row in saveRow)
foreach (var row in saveRow)
{
try
{
@ -245,21 +245,21 @@ namespace StockDal
public void LoadStockMarketList(int persId)
{
StockMarketList = new Dictionary<string, DiTraderStockRow>();
DumpObjects = new List<DiTraderStockRow>();
DumpObjects = new List<DiTraderStockRow>();
var groupedStocks = _stockRepository.GetStocksGroupedPerPerson(persId);
var lastGroup = string.Empty;
var stockList = new List<string>();
foreach(var groupedStock in groupedStocks)
foreach (var groupedStock in groupedStocks)
{
if (groupedStock.StockGroup != lastGroup)
{
if(lastGroup != string.Empty)
if (lastGroup != string.Empty)
{
_testSettings.StockWishes = stockList.ToArray();
if (lastGroup == "ZNotFound")
foreach (var stk in stockList)
{
saveStockData(new List<DiTraderStockRow>(_scrapePage.SearchStockAndCollect(stk.Substring(0,4))));
saveStockData(new List<DiTraderStockRow>(_scrapePage.SearchStockAndCollect(stk.Substring(0, 4))));
}
else
saveStockData(_scrapePage.GetMyStockStatus(lastGroup));
@ -279,7 +279,7 @@ namespace StockDal
}
}
if(stockList.Count > 0)
if (stockList.Count > 0)
{
_testSettings.StockWishes = stockList.ToArray();
if (lastGroup == "ZNotFound")
@ -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)