Cleared app from old code, by commenting out

Will do another commit when all comments are taken away
This commit is contained in:
2022-02-21 17:16:57 +01:00
parent aac79f946c
commit 3b0809c48d
7 changed files with 230 additions and 178 deletions

View File

@ -23,5 +23,11 @@ namespace DataDomain
public long PostAmount { get; set; } public long PostAmount { get; set; }
public decimal SoldStockPrice { get; set; } public decimal SoldStockPrice { get; set; }
//public decimal PostValue
//{
// get { return ActAmount * ActValue; }
//}
} }
} }

View File

@ -18,14 +18,15 @@ using Helpers;
namespace StockDal namespace StockDal
{ {
public class StockMarketRepository : IStockMarketRepository public class StockMarketRepository : IStockMarketRepository
{ {
public Dictionary<string, DiTraderStockRow> StockMarketList { get; set; } public Dictionary<string, DiTraderStockRow> StockMarketList { get; set; }
public List<DiTraderStockRow> DumpObjects { get; set; } = new List<DiTraderStockRow>(); public List<DiTraderStockRow> DumpObjects { get; set; } = new List<DiTraderStockRow>();
public DiTraderStockRow SaveRow { get; set; } public DiTraderStockRow SaveRow { get; set; }
public StringBuilder TextResults { get; set; } public StringBuilder TextResults { get; set; }
public bool ViewBrowser { get; set; } //public bool ViewBrowser { get; set; }
public IWebDriver driver; public IWebDriver driver;
private readonly IStockPersonConnect _stockPersonConnect; private readonly IStockPersonConnect _stockPersonConnect;
@ -39,53 +40,53 @@ namespace StockDal
TestSettings testSettings, TestSettings testSettings,
IStockScrapePage scrapePage) IStockScrapePage scrapePage)
{ {
ViewBrowser = false; // ViewBrowser = false;
_stockPersonConnect = stockPersonConnect; _stockPersonConnect = stockPersonConnect;
_stockRepository = stockRepository; _stockRepository = stockRepository;
_testSettings = testSettings; _testSettings = testSettings;
_scrapePage = scrapePage; _scrapePage = scrapePage;
} }
private void Find_Data() //private void Find_Data()
{ //{
TextResults = new StringBuilder(); // TextResults = new StringBuilder();
IList<IWebElement> searchElements = driver.FindElements(By.TagName("tbody")); // IList<IWebElement> searchElements = driver.FindElements(By.TagName("tbody"));
foreach (IWebElement i in searchElements) // foreach (IWebElement i in searchElements)
{ // {
HtmlAgilityPack.HtmlDocument htmlDocument = new HtmlAgilityPack.HtmlDocument(); // HtmlAgilityPack.HtmlDocument htmlDocument = new HtmlAgilityPack.HtmlDocument();
var text = i.GetAttribute("innerHTML"); // var text = i.GetAttribute("innerHTML");
htmlDocument.LoadHtml(text); // htmlDocument.LoadHtml(text);
var inputs = htmlDocument.DocumentNode.Descendants("tr").ToList(); // var inputs = htmlDocument.DocumentNode.Descendants("tr").ToList();
foreach (var items in inputs) // foreach (var items in inputs)
{ // {
HtmlAgilityPack.HtmlDocument htmlDocument1 = new HtmlAgilityPack.HtmlDocument(); // HtmlAgilityPack.HtmlDocument htmlDocument1 = new HtmlAgilityPack.HtmlDocument();
htmlDocument1.LoadHtml(items.InnerHtml); // htmlDocument1.LoadHtml(items.InnerHtml);
var tds = htmlDocument1.DocumentNode.Descendants("td").ToList(); // var tds = htmlDocument1.DocumentNode.Descendants("td").ToList();
var appendText = ""; // var appendText = "";
var fNr = 0; // var fNr = 0;
foreach (var item in tds) // foreach (var item in tds)
{ // {
var intext = item.InnerText.Replace("\r\n", ""); // var intext = item.InnerText.Replace("\r\n", "");
appendText += appendText.Length == 0 ? intext : " " + intext; // appendText += appendText.Length == 0 ? intext : " " + intext;
if (tds.Count == 10) // if (tds.Count == 10)
{ // {
AddValueToListRow(fNr++, intext); // AddValueToListRow(fNr++, intext);
} // }
} // }
if (!string.IsNullOrEmpty(appendText)) // if (!string.IsNullOrEmpty(appendText))
{ // {
TextResults.Append(appendText + "\r\n"); // TextResults.Append(appendText + "\r\n");
} // }
htmlDocument1 = null; // htmlDocument1 = null;
} // }
htmlDocument = null; // htmlDocument = null;
TextResults.Append("\r\n"); // TextResults.Append("\r\n");
} // }
// var oxe = StockMarketList; // // var oxe = StockMarketList;
} //}
private void SaveLogging() private void SaveLogging()
{ {
@ -100,122 +101,122 @@ namespace StockDal
File.WriteAllText($"{programPath}\\Loggings\\Log{DateTime.Now.ToShortDateString()}.txt", output); File.WriteAllText($"{programPath}\\Loggings\\Log{DateTime.Now.ToShortDateString()}.txt", output);
} }
private void AddValueToListRow(int pos, string value) //private void AddValueToListRow(int pos, string value)
{ //{
switch (pos) // switch (pos)
{ // {
case 0: // case 0:
{ // {
SaveRow = new DiTraderStockRow(); // SaveRow = new DiTraderStockRow();
SaveRow.StockName = value; // SaveRow.StockName = value;
break; // break;
} // }
case 1: // case 1:
{ // {
SaveRow.ProcChange = string.IsNullOrWhiteSpace(value) ? 0 : decimal.Parse(value); // SaveRow.ProcChange = string.IsNullOrWhiteSpace(value) ? 0 : decimal.Parse(value);
break; // break;
} // }
case 2: // case 2:
{ // {
SaveRow.RealChange = string.IsNullOrWhiteSpace(value) ? 0 : decimal.Parse(value); // SaveRow.RealChange = string.IsNullOrWhiteSpace(value) ? 0 : decimal.Parse(value);
break; // break;
} // }
case 3: // case 3:
{ // {
SaveRow.BuyPrice = string.IsNullOrWhiteSpace(value) ? 0 : decimal.Parse(value); // SaveRow.BuyPrice = string.IsNullOrWhiteSpace(value) ? 0 : decimal.Parse(value);
break; // break;
} // }
case 4: // case 4:
{ // {
SaveRow.SellPrice = string.IsNullOrWhiteSpace(value) ? 0 : decimal.Parse(value); // SaveRow.SellPrice = string.IsNullOrWhiteSpace(value) ? 0 : decimal.Parse(value);
break; // break;
} // }
case 5: // case 5:
{ // {
SaveRow.LatestPrice = string.IsNullOrWhiteSpace(value) ? 0 : decimal.Parse(value); // SaveRow.LatestPrice = string.IsNullOrWhiteSpace(value) ? 0 : decimal.Parse(value);
break; // break;
} // }
case 6: // case 6:
{ // {
SaveRow.HighestPrice = string.IsNullOrWhiteSpace(value) ? 0 : decimal.Parse(value); // SaveRow.HighestPrice = string.IsNullOrWhiteSpace(value) ? 0 : decimal.Parse(value);
break; // break;
} // }
case 7: // case 7:
{ // {
SaveRow.LowestPrice = string.IsNullOrWhiteSpace(value) ? 0 : decimal.Parse(value); // SaveRow.LowestPrice = string.IsNullOrWhiteSpace(value) ? 0 : decimal.Parse(value);
break; // break;
} // }
case 8: // case 8:
{ // {
SaveRow.Volume = string.IsNullOrWhiteSpace(value) ? 0 : long.Parse(value.Replace(" ", "")); // SaveRow.Volume = string.IsNullOrWhiteSpace(value) ? 0 : long.Parse(value.Replace(" ", ""));
break; // break;
} // }
case 9: // 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); // //StockMarketList.Add(SaveRow.StockName, SaveRow);
try // try
{ // {
StockMarketList.Add(SaveRow.StockName, SaveRow); // StockMarketList.Add(SaveRow.StockName, SaveRow);
} // }
catch (ArgumentException) // catch (ArgumentException)
{ // {
try // try
{ // {
StockMarketList.Add(SaveRow.StockName + "-2", SaveRow); // StockMarketList.Add(SaveRow.StockName + "-2", SaveRow);
} // }
catch (Exception) // catch (Exception)
{ // {
DumpObjects.Add(SaveRow); // DumpObjects.Add(SaveRow);
} // }
} // }
break; // break;
} // }
default: // default:
break; // break;
} // }
} //}
private void OpenBrowser(bool? burl2 = false) //private void OpenBrowser(bool? burl2 = false)
{ //{
var driverService = ChromeDriverService.CreateDefaultService(); // var driverService = ChromeDriverService.CreateDefaultService();
driverService.HideCommandPromptWindow = true; // driverService.HideCommandPromptWindow = true;
if (ViewBrowser) // if (ViewBrowser)
{ // {
if (driver == null) // if (driver == null)
{ // {
driver = new ChromeDriver(driverService); // driver = new ChromeDriver(driverService);
} // }
} // }
else // else
{ // {
if (driver == null) // if (driver == null)
{ // {
var options = new ChromeOptions(); // var options = new ChromeOptions();
options.AddArgument("headless"); // options.AddArgument("headless");
driver = new ChromeDriver(driverService, options); // driver = new ChromeDriver(driverService, options);
} // }
} // }
try // try
{ // {
//var url0 = "https://money.cnn.com/data/hotstocks/index.html"; // //var url0 = "https://money.cnn.com/data/hotstocks/index.html";
var url = "https://trader.di.se/index.php/stocklist/index/2055?list=7126"; // var url = "https://trader.di.se/index.php/stocklist/index/2055?list=7126";
var url2 = "https://trader.di.se/index.php/stocklist/index/2055?list=7116"; // 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 url3 = "https://trader.di.se/index.php/stocklist/index/2055?list=7127";
//var url1 = "https://www.finansportalen.se/aktiekurser/"; // //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 // catch
{ // {
throw; // throw;
} // }
} //}
private void saveStockData(List<DiTraderStockRow> saveRow) private void saveStockData(List<DiTraderStockRow> saveRow)
{ {
@ -246,7 +247,8 @@ namespace StockDal
{ {
StockMarketList = new Dictionary<string, DiTraderStockRow>(); StockMarketList = new Dictionary<string, DiTraderStockRow>();
DumpObjects = new List<DiTraderStockRow>(); DumpObjects = new List<DiTraderStockRow>();
var groupedStocks = _stockRepository.GetStocksGroupedPerPerson(persId); var groupedStocks = persId == 0 ? _stockRepository.GetStocksGroupedAllPersons()
: _stockRepository.GetStocksGroupedPerPerson(persId);
var lastGroup = string.Empty; var lastGroup = string.Empty;
var stockList = new List<string>(); var stockList = new List<string>();
foreach (var groupedStock in groupedStocks) foreach (var groupedStock in groupedStocks)
@ -359,19 +361,20 @@ namespace StockDal
} }
public void LoadStockMarketList(int persId, bool viewBrowser) //public void LoadStockMarketList(int persId)
{ //{
StockMarketList = new Dictionary<string, DiTraderStockRow>(); // LoadStockMarketList(persId);
ViewBrowser = viewBrowser; // //StockMarketList = new Dictionary<string, DiTraderStockRow>();
OpenBrowser(); // //ViewBrowser = viewBrowser;
Find_Data(); // //OpenBrowser();
} // //Find_Data();
//}
public void RefreshMarketList(int persId) public void RefreshMarketList(int persId)
{ {
StockMarketList = new Dictionary<string, DiTraderStockRow>(); //StockMarketList = new Dictionary<string, DiTraderStockRow>();
driver.Navigate().Refresh(); //driver.Navigate().Refresh();
Find_Data(); //Find_Data();
} }
public void Clean() public void Clean()

View File

@ -103,12 +103,6 @@ namespace StockDAL
return result; return result;
} }
public IEnumerable<StockMember> GetAllStocks()
{
using var context = new StockContext();
var output = context.Stocks;
return output.ToList();
}
public IEnumerable<StockMember> GetAllRemainingStocks() public IEnumerable<StockMember> GetAllRemainingStocks()
{ {
@ -132,8 +126,14 @@ namespace StockDAL
context.Stocks.AddRange(stockMembers); context.Stocks.AddRange(stockMembers);
context.SaveChanges(); context.SaveChanges();
} }
public IEnumerable<StockMember> GetAllStocks()
{
using var context = new StockContext();
var output = (from stk in context.Stocks
orderby stk.StockId, (stk.ActAmount * stk.ActValue).ToString() descending
select stk);
return output.ToList();
}
public IEnumerable<StockGrpPers> GetStocksGroupedPerPerson(int persId) public IEnumerable<StockGrpPers> GetStocksGroupedPerPerson(int persId)
{ {
@ -152,6 +152,24 @@ namespace StockDAL
return result; return result;
} }
public IEnumerable<StockGrpPers> GetStocksGroupedAllPersons()
{
using var context = new StockContext();
var result = (from prs in context.PersonStocks
join stk in context.Stocks on prs.StockId equals stk.Id
join grp in context.StockGroups on stk.StockId equals grp.StockName
where stk.ActAmount > 0
orderby grp.StockGroup, grp.StockName
select new StockGrpPers
{
PersId = prs.Id,
StockId = stk.StockId,
StockGroup = grp.StockGroup
}).ToList();
return result;
}
public StockGroupModel SaveStockGroup(StockGroupModel stockGroup) public StockGroupModel SaveStockGroup(StockGroupModel stockGroup)
{ {
using var context = new StockContext(); using var context = new StockContext();
@ -231,7 +249,7 @@ namespace StockDAL
{ {
using var context = new StockContext(); using var context = new StockContext();
var output = (from stg in context.StockGroups var output = (from stg in context.StockGroups
orderby stg.StockName orderby stg.StockName, stg.StockGroup
select stg.StockName).ToList(); select stg.StockName).ToList();
return output; return output;
} }

View File

@ -9,12 +9,14 @@ namespace StockDal.Interface
{ {
public interface IStockMarketRepository public interface IStockMarketRepository
{ {
List<DiTraderStockRow> DumpObjects { get; set; }
DiTraderStockRow SaveRow { get; set; }
Dictionary<string, DiTraderStockRow> StockMarketList { get; set; } Dictionary<string, DiTraderStockRow> StockMarketList { get; set; }
bool ViewBrowser { get; set; } StringBuilder TextResults { get; set; }
void Clean(); void Clean();
void LoadStockMarketList(int persId); void LoadStockMarketList(int persId);
void LoadStockMarketList(int persId, bool viewBrowser); //void LoadStockMarketList(int persId, bool viewBrowser);
void RefreshMarketList(int persId); void RefreshMarketList(int persId);
DiTraderStockRow LoadStockMarketStockData(string searchedStock); DiTraderStockRow LoadStockMarketStockData(string searchedStock);
} }

View File

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

View File

@ -89,28 +89,45 @@ namespace StockInfoCore
btnBackupAll.Enabled = false; btnBackupAll.Enabled = false;
} }
private void ReloadData() private void ReloadData(bool upd = false)
{ {
loading = true; loading = true;
var allStocks = _stockRepository.GetAllStocks(); var allStocks = _stockRepository.GetAllStocks();
if (upd)
{
_stockMarketRepository.LoadStockMarketList(SelectedPersonId);
allStocks.ToList().ForEach(SM => SM.ActValue = UpdateOnlyNonZeroAmount(SM).ActValue);
}
dataGridView.DataSource = allStocks; dataGridView.DataSource = allStocks;
// SaveStocks(allStocks); // SaveStocks(allStocks);
lblTotalRecords.Text = $"Total records: {dataGridView.RowCount}"; lblTotalRecords.Text = $"Total records: {dataGridView.RowCount}";
loading = false; loading = false;
} }
private StockMember UpdateOnlyNonZeroAmount(StockMember sMember)
{
var output = new StockMember();
if (sMember.ActAmount > 0)
{
sMember.ActValue = _stockMarketRepository.StockMarketList[sMember.StockId].LatestPrice;
}
output=sMember;
return output;
}
private void btnReload_Click(object sender, EventArgs e) private void btnReload_Click(object sender, EventArgs e)
{ {
ReloadData(); ReloadData(true);
} }
private void btnTestScrapFunction_Click(object sender, EventArgs e) private void btnTestScrapFunction_Click(object sender, EventArgs e)
{ {
_stockMarketRepository.LoadStockMarketList(SelectedPersonId, chbShowBrowser.Checked); //_stockMarketRepository.LoadStockMarketList(SelectedPersonId, chbShowBrowser.Checked);
var stocklist = _stockMarketRepository.StockMarketList; //var stocklist = _stockMarketRepository.StockMarketList;
lblStockRows.Text = stocklist.Count().ToString(); //lblStockRows.Text = stocklist.Count().ToString();
btnReloadShares.Enabled = true; //btnReloadShares.Enabled = true;
} }
private void frmInitial_FormClosing(object sender, FormClosingEventArgs e) private void frmInitial_FormClosing(object sender, FormClosingEventArgs e)
@ -131,7 +148,7 @@ namespace StockInfoCore
private void btnStockReg_Click(object sender, EventArgs e) private void btnStockReg_Click(object sender, EventArgs e)
{ {
Cursor.Current = Cursors.WaitCursor; Cursor.Current = Cursors.WaitCursor;
_stockMarketRepository.LoadStockMarketList(SelectedPersonId); _stockMarketRepository.LoadStockMarketList(SelectedPersonId==0?10000: SelectedPersonId);
_regWindow.Stocks = _stockMarketRepository.StockMarketList; _regWindow.Stocks = _stockMarketRepository.StockMarketList;
Cursor.Current = DefaultCursor; Cursor.Current = DefaultCursor;
_regWindow.ShowDialog(); _regWindow.ShowDialog();

View File

@ -59,6 +59,11 @@ namespace StockInfoCore
LoadStockCombo(); LoadStockCombo();
} }
/// <summary>
/// Val av enstaka Aktie för sökning och registrering
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cmbStockChoser_SelectedIndexChanged(object sender, EventArgs e) private void cmbStockChoser_SelectedIndexChanged(object sender, EventArgs e)
{ {
if (Stocks.ContainsKey(cmbStockChoser.SelectedItem.ToString())) if (Stocks.ContainsKey(cmbStockChoser.SelectedItem.ToString()))