From 02d8762ee0d42250fadd27ad156b4d2b2c7ebf56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tommy=20=C3=96man?= Date: Fri, 11 Feb 2022 11:23:01 +0100 Subject: [PATCH] Program fixes , registering new stocks, without dbchanges --- DataDomain/StockGroupModel.cs | 15 ++++ PP.cmd | 13 +++ StockDAL/StockMarketRepository.cs | 86 ++++++++++++++++--- StockDAL/StockRepository.cs | 58 ++++++++++++- StockDAL/StockScrapePage.cs | 4 +- StockDal.Interface/IStockMarketRepository.cs | 1 + StockDal.Interface/IStockRepository.cs | 3 + StockInfoCore/Stocks.db | Bin 139264 -> 200704 bytes StockInfoCore/Stocks.db-shm | Bin 0 -> 32768 bytes StockInfoCore/Stocks.db-wal | 0 StockInfoCore/TillfBackup/Stocks.db | Bin 0 -> 147456 bytes StockInfoCore/TillfBackup/Stocks.db-shm | Bin 0 -> 32768 bytes StockInfoCore/TillfBackup/Stocks.db-wal | Bin 0 -> 333752 bytes StockInfoCore/frmRegisterStock.cs | 75 ++++++++++++---- 14 files changed, 220 insertions(+), 35 deletions(-) create mode 100644 DataDomain/StockGroupModel.cs create mode 100644 PP.cmd create mode 100644 StockInfoCore/Stocks.db-shm create mode 100644 StockInfoCore/Stocks.db-wal create mode 100644 StockInfoCore/TillfBackup/Stocks.db create mode 100644 StockInfoCore/TillfBackup/Stocks.db-shm create mode 100644 StockInfoCore/TillfBackup/Stocks.db-wal diff --git a/DataDomain/StockGroupModel.cs b/DataDomain/StockGroupModel.cs new file mode 100644 index 0000000..d7f2b07 --- /dev/null +++ b/DataDomain/StockGroupModel.cs @@ -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; } + } +} diff --git a/PP.cmd b/PP.cmd new file mode 100644 index 0000000..fb6050c --- /dev/null +++ b/PP.cmd @@ -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 \ No newline at end of file diff --git a/StockDAL/StockMarketRepository.cs b/StockDAL/StockMarketRepository.cs index d045954..438af18 100644 --- a/StockDAL/StockMarketRepository.cs +++ b/StockDAL/StockMarketRepository.cs @@ -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 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(); - DumpObjects = new List(); + DumpObjects = new List(); var groupedStocks = _stockRepository.GetStocksGroupedPerPerson(persId); var lastGroup = string.Empty; var stockList = new List(); - 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(_scrapePage.SearchStockAndCollect(stk.Substring(0,4)))); + saveStockData(new List(_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(); + //DumpObjects = new List(); + var groupedStocks = _stockRepository.GetGroupedStock(searchedStock); + var lastGroup = string.Empty; + var stockList = new List(); + var output = new List(); + 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) { diff --git a/StockDAL/StockRepository.cs b/StockDAL/StockRepository.cs index 87d6658..5b0aa47 100644 --- a/StockDAL/StockRepository.cs +++ b/StockDAL/StockRepository.cs @@ -133,6 +133,8 @@ namespace StockDAL context.SaveChanges(); } + + public IEnumerable 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 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 GetStockNames() + { + using var context = new StockContext(); + var output = (from stg in context.StockGroups + orderby stg.StockName + select stg.StockName).ToList(); + return output; + } + + + } } diff --git a/StockDAL/StockScrapePage.cs b/StockDAL/StockScrapePage.cs index 27de065..68b9c94 100644 --- a/StockDAL/StockScrapePage.cs +++ b/StockDAL/StockScrapePage.cs @@ -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 SearchStockAndCollect(string stockName) diff --git a/StockDal.Interface/IStockMarketRepository.cs b/StockDal.Interface/IStockMarketRepository.cs index 409d9fb..741a6b7 100644 --- a/StockDal.Interface/IStockMarketRepository.cs +++ b/StockDal.Interface/IStockMarketRepository.cs @@ -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); } } diff --git a/StockDal.Interface/IStockRepository.cs b/StockDal.Interface/IStockRepository.cs index 399bf76..e64f248 100644 --- a/StockDal.Interface/IStockRepository.cs +++ b/StockDal.Interface/IStockRepository.cs @@ -20,5 +20,8 @@ namespace StockDAL.Interface void UpdateActualForSell(int id, int sellAmount, decimal sellPrice, DateTime sellDate); void UpdateActualPrice(int id, decimal price); IEnumerable GetStocksGroupedPerPerson(int persId); + List GetStockNames(); + IEnumerable GetGroupedStock(string stock); + StockGroupModel SaveStockGroup(StockGroupModel stockGroup); } } diff --git a/StockInfoCore/Stocks.db b/StockInfoCore/Stocks.db index c2d1cd99594a0783596bb2ac269b68a8c05ad422..ca4a7e12d252577d5329f51c198a134c7b49de58 100644 GIT binary patch delta 31850 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≈azhS$Vod!`@xx$hEGC@63ULB0(oqGbFmD$H7Uqw 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 diff --git a/StockInfoCore/Stocks.db-shm b/StockInfoCore/Stocks.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..fe9ac2845eca6fe6da8a63cd096d9cf9e24ece10 GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/StockInfoCore/TillfBackup/Stocks.db-shm b/StockInfoCore/TillfBackup/Stocks.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..8540a176d037abf7e75799d38435a470166fb8ce GIT binary patch literal 32768 zcmeI*%T7~K6oBEsLggY#xmrb9gvuQh5k&>Lc>|Tpg!f>?44wi8jCcm7B+U8*%pEY` zF@SwY4`~QAu`whx|4LTY&e`XzmHj=y+3AxJqWBdu0jaf6b0K#&n^*JOokxe6{KnbV z@!x~J?E2pR>2CTT-w&-WBkFrz6otoEC7Ky$Pgq~ic(2_0EcDD2&4~IG&nUNV{9Urp zJF2z+x%X`|;#u*27;7k?fC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw8* zED-(W$xuK61xg8wG0qadSuXXGdkQF^fC36Apg=_kyyFim6>$;|5eqzz7ghxnP(T3% z6i`3`1r$&~0R<{fpqeBPsR_63WXRIR1n>D!ai{b^3fv@+-~m7$M?UeHDW>_t471EJ&jMfh r#&>@3lf`gD*ecO2UWNh+D4>7>3Mim}0tzUgfC36Apnw7j+!uihzy3l9 literal 0 HcmV?d00001 diff --git a/StockInfoCore/TillfBackup/Stocks.db-wal b/StockInfoCore/TillfBackup/Stocks.db-wal new file mode 100644 index 0000000000000000000000000000000000000000..d82d187976ade00a6fb02ff6537735409b38d609 GIT binary patch literal 333752 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 literal 0 HcmV?d00001 diff --git a/StockInfoCore/frmRegisterStock.cs b/StockInfoCore/frmRegisterStock.cs index fa9d2a8..7d7c8fb 100644 --- a/StockInfoCore/frmRegisterStock.cs +++ b/StockInfoCore/frmRegisterStock.cs @@ -1,4 +1,5 @@ using DataDomain; +using StockDal.Interface; using StockDAL.Interface; using System; using System.Collections.Generic; @@ -16,24 +17,33 @@ namespace StockInfoCore { Color hdr = Color.Red; private readonly IStockRepository _stockRepository; + private readonly IStockMarketRepository _stockMarketRepository; + private readonly IStockScrapePage _scrapePage; + public List StockNames { get; set; } public Dictionary Stocks { get; set; } public List RegisteredStocks { get; set; } = new List(); - 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) + + cmbStockChoser.Items.Clear(); + + foreach (var key in StockNames) { - foreach (var key in Stocks.Keys) - { - cmbStockChoser.Items.Add(key); - } + cmbStockChoser.Items.Add(key); } } @@ -45,22 +55,31 @@ namespace StockInfoCore private void frmRegisterStock_Shown(object sender, EventArgs e) { + StockNames = _stockRepository.GetStockNames(); LoadStockCombo(); } private void cmbStockChoser_SelectedIndexChanged(object sender, EventArgs e) { - var stockChosen = Stocks[cmbStockChoser.SelectedItem.ToString()]; - txtStockExtId.Text = stockChosen.StockName; - txtActValue.Text = stockChosen.LatestPrice.ToString(); - txtActDate.Text = (DateTime.Today + stockChosen.TimeOfDay).ToString(); - var stockSold = _stockRepository.LatestSell(stockChosen.StockName.Trim()); - if (stockSold != null) + if (Stocks.ContainsKey(cmbStockChoser.SelectedItem.ToString())) { - if (stockSold.LatestSoldDate != null) + var stockChosen = Stocks[cmbStockChoser.SelectedItem.ToString()]; + txtStockExtId.Text = stockChosen.StockName; + txtActValue.Text = stockChosen.LatestPrice.ToString(); + txtActDate.Text = (DateTime.Today + stockChosen.TimeOfDay).ToString(); + var stockSold = _stockRepository.LatestSell(stockChosen.StockName.Trim()); + if (stockSold != null) { - txtLatestSoldDate.Text = stockSold.LatestSoldDate.Value.ToString(); - txtLatestSoldPrice.Text = stockSold.SoldStockPrice.ToString(); + if (stockSold.LatestSoldDate != null) + { + txtLatestSoldDate.Text = stockSold.LatestSoldDate.Value.ToString(); + txtLatestSoldPrice.Text = stockSold.SoldStockPrice.ToString(); + } + else + { + txtLatestSoldDate.Text = string.Empty; + txtLatestSoldPrice.Text = string.Empty; + } } else { @@ -68,10 +87,24 @@ namespace StockInfoCore 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 { - txtLatestSoldDate.Text = string.Empty; - txtLatestSoldPrice.Text = string.Empty; + 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)