Edit stocklist. add stocks,

This commit is contained in:
2022-02-07 23:58:10 +01:00
parent b3d1a46c6c
commit d56e69b448
12 changed files with 87 additions and 43 deletions

View File

@ -1,12 +1,6 @@
using DataDomain; using DataDomain;
using Helpers;
using OpenQA.Selenium; using OpenQA.Selenium;
using System;
using System.Collections; using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BrowserHelper.Extensions namespace BrowserHelper.Extensions
{ {
@ -86,14 +80,14 @@ namespace BrowserHelper.Extensions
IWebElement tblBody = table.FindElement(By.XPath(".//tbody")); IWebElement tblBody = table.FindElement(By.XPath(".//tbody"));
var rows = tblBody.FindElements(By.TagName("tr")); var rows = tblBody.FindElements(By.TagName("tr"));
Dictionary<string, int> columnPos = new Dictionary<string, int>(); Dictionary<string, int> columnPos = new Dictionary<string, int>();
GlobalStopwatch.PrintSecs("After allocations"); //GlobalStopwatch.PrintSecs("After allocations");
for (int i = 0; i < columns.Count; i++) for (int i = 0; i < columns.Count; i++)
{ {
if (shareHeaders.Contains(columns[i].Text)) columnPos.Add(columns[i].Text, i); if (shareHeaders.Contains(columns[i].Text)) columnPos.Add(columns[i].Text, i);
} }
var antal = shares.Length; var antal = shares.Length;
int rowIndex = 0; int rowIndex = 0;
GlobalStopwatch.PrintSecs("Before scraplooping"); //GlobalStopwatch.PrintSecs("Before scraplooping");
foreach (var row in rows) foreach (var row in rows)
{ {
var element = row.FindElement(By.XPath(".//td")); var element = row.FindElement(By.XPath(".//td"));
@ -116,7 +110,7 @@ namespace BrowserHelper.Extensions
} }
if (antal < 1) break; if (antal < 1) break;
} }
GlobalStopwatch.PrintSecs("After scraplooping"); //GlobalStopwatch.PrintSecs("After scraplooping");
return shareCollection; return shareCollection;
} }

View File

@ -1,6 +1,4 @@
using BrowserHelper.Driver; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using System.IO;
using System.Reflection; using System.Reflection;
using System.Text.Json; using System.Text.Json;
using System.Text.Json.Serialization; using System.Text.Json.Serialization;

View File

@ -18,6 +18,6 @@ namespace DatamodelLibrary
public DbSet<ShareModel> StockGroups { get; set; } public DbSet<ShareModel> StockGroups { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder options) protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlite("Data Source=Stocks.db"); => options.UseSqlite(@"Data Source=.\Stocks.db");
} }
} }

View File

@ -246,10 +246,9 @@ namespace StockDal
{ {
StockMarketList = new Dictionary<string, DiTraderStockRow>(); StockMarketList = new Dictionary<string, DiTraderStockRow>();
DumpObjects = new List<DiTraderStockRow>(); DumpObjects = new List<DiTraderStockRow>();
GlobalStopwatch.PrintSecs("After dictionaries setup "); //GlobalStopwatch.PrintSecs("After dictionaries setup ");
//var connStocks = _stockPersonConnect.GetAllConnectionsByPersId(persId);
var groupedStocks = _stockRepository.GetStocksGroupedPerPerson(persId); var groupedStocks = _stockRepository.GetStocksGroupedPerPerson(persId);
GlobalStopwatch.PrintSecs("After groupedStocks fetched "); //GlobalStopwatch.PrintSecs("After groupedStocks fetched ");
var lastGroup = string.Empty; var lastGroup = string.Empty;
var stockList = new List<string>(); var stockList = new List<string>();
@ -261,9 +260,9 @@ namespace StockDal
{ {
_testSettings.StockWishes = stockList.ToArray(); _testSettings.StockWishes = stockList.ToArray();
stockList.Clear(); stockList.Clear();
GlobalStopwatch.PrintSecs("Before GetStockStatus"); //GlobalStopwatch.PrintSecs("Before GetStockStatus");
saveStockData( _scrapePage.GetMyStockStatus(lastGroup)); saveStockData( _scrapePage.GetMyStockStatus(lastGroup));
GlobalStopwatch.PrintSecs("After GetStockStatus"); //GlobalStopwatch.PrintSecs("After GetStockStatus");
lastGroup = groupedStock.StockGroup; lastGroup = groupedStock.StockGroup;
} }
else else
@ -286,14 +285,6 @@ namespace StockDal
saveStockData(_scrapePage.GetMyStockStatus(lastGroup)); saveStockData(_scrapePage.GetMyStockStatus(lastGroup));
} }
//OpenBrowser(null);
//Find_Data();
//OpenBrowser();
//Find_Data();
//OpenBrowser(true);
//Find_Data();
if (DumpObjects.Any()) if (DumpObjects.Any())
{ {
SaveLogging(); SaveLogging();

View File

@ -15,7 +15,35 @@ namespace StockDAL
{ {
using (var context = new StockContext()) using (var context = new StockContext())
{ {
var sm = context.Stocks.Add(stockMember); if (stockMember.Id > 0)
{
var entity = (from stk in context.Stocks
where stk.Id == stockMember.Id
select stk).FirstOrDefault();
if (entity != null)
{
entity.StockId = stockMember.StockId;
entity.StockExtId = stockMember.StockExtId;
entity.ActValue = stockMember.ActValue;
entity.ActAmount= stockMember.ActAmount;
entity.SoldDate = stockMember.SoldDate;
entity.ActDate = stockMember.ActDate;
entity.SoldStockPrice = stockMember.SoldStockPrice;
entity.SoldValue = stockMember.SoldValue;
entity.PostAmount = stockMember.PostAmount;
entity.Comment = stockMember.Comment;
entity.BuyDate = stockMember.BuyDate;
entity.BuyValue = stockMember.BuyValue;
}
else
{
var sm = context.Stocks.Add(stockMember);
}
}
else
{
var sm = context.Stocks.Add(stockMember);
}
context.SaveChanges(); context.SaveChanges();
} }
} }
@ -111,7 +139,7 @@ namespace StockDAL
join stk in context.Stocks on prs.StockId equals stk.Id join stk in context.Stocks on prs.StockId equals stk.Id
join grp in context.StockGroups on stk.StockId equals grp.StockName join grp in context.StockGroups on stk.StockId equals grp.StockName
where prs.PersonId == persId where prs.PersonId == persId
orderby grp.GroupName, grp.StockName orderby grp.GroupName, grp.StockName
select new StockGrpPers select new StockGrpPers
{ {
PersId = persId, PersId = persId,

BIN
StockInfoCore/Stocks.db-shm Normal file

Binary file not shown.

View File

View File

@ -58,6 +58,7 @@ namespace StockInfoCore
this.label1 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label();
this.txtStockName = new System.Windows.Forms.TextBox(); this.txtStockName = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label();
this.btnSaveNew = new System.Windows.Forms.Button();
this.groupBox1.SuspendLayout(); this.groupBox1.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
@ -306,11 +307,23 @@ namespace StockInfoCore
this.label3.TabIndex = 28; this.label3.TabIndex = 28;
this.label3.Text = "StockId"; this.label3.Text = "StockId";
// //
// btnSaveNew
//
this.btnSaveNew.Location = new System.Drawing.Point(251, 414);
this.btnSaveNew.Name = "btnSaveNew";
this.btnSaveNew.Size = new System.Drawing.Size(80, 23);
this.btnSaveNew.TabIndex = 29;
this.btnSaveNew.Text = "SaveAsNew";
this.btnSaveNew.UseVisualStyleBackColor = true;
this.btnSaveNew.UseWaitCursor = true;
this.btnSaveNew.Click += new System.EventHandler(this.btnSaveNew_Click);
//
// frmEditStock // frmEditStock
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(570, 452); this.ClientSize = new System.Drawing.Size(570, 452);
this.Controls.Add(this.btnSaveNew);
this.Controls.Add(this.label3); this.Controls.Add(this.label3);
this.Controls.Add(this.txtStockName); this.Controls.Add(this.txtStockName);
this.Controls.Add(this.groupBox1); this.Controls.Add(this.groupBox1);
@ -377,5 +390,6 @@ namespace StockInfoCore
private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox txtStockName; private System.Windows.Forms.TextBox txtStockName;
private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label3;
private Button btnSaveNew;
} }
} }

View File

@ -54,6 +54,7 @@ namespace StockInfoCore
private void LoadStockData() private void LoadStockData()
{ {
var stockChosen = _stockRepository.GetStockMember(CurrentStockMember); var stockChosen = _stockRepository.GetStockMember(CurrentStockMember);
txtStockName.Text = stockChosen.StockId;
txtStockExtId.Text = stockChosen.StockExtId; txtStockExtId.Text = stockChosen.StockExtId;
txtActValue.Text = stockChosen.ActValue.ToString(); txtActValue.Text = stockChosen.ActValue.ToString();
//txtActDate.Text = (DateTime.Today + stockChosen.ActDate.Value.TimeOfDay).ToString(); //txtActDate.Text = (DateTime.Today + stockChosen.ActDate.Value.TimeOfDay).ToString();
@ -83,14 +84,14 @@ namespace StockInfoCore
txtBuyDate.Text = stockChosen.BuyDate.ToString(); // = string.IsNullOrWhiteSpace(txtBuyDate.Text) ? DateTime.Today : DateTime.Parse(txtBuyDate.Text); txtBuyDate.Text = stockChosen.BuyDate.ToString(); // = string.IsNullOrWhiteSpace(txtBuyDate.Text) ? DateTime.Today : DateTime.Parse(txtBuyDate.Text);
txtActValue.Text = stockChosen.ActValue.ToString(); // = decimal.Parse(string.IsNullOrEmpty(txtActValue.Text) ? "0" : txtActValue.Text); txtActValue.Text = stockChosen.ActValue.ToString(); // = decimal.Parse(string.IsNullOrEmpty(txtActValue.Text) ? "0" : txtActValue.Text);
txtActAmount.Text = stockChosen.ActAmount.ToString(); // = long.Parse(string.IsNullOrEmpty(txtActAmount.Text) ? "0" : txtActAmount.Text); txtActAmount.Text = stockChosen.ActAmount.ToString(); // = long.Parse(string.IsNullOrEmpty(txtActAmount.Text) ? "0" : txtActAmount.Text);
txtSoldDate.Text = stockChosen.SoldDate.ToString(); // = null; //DateTime.MaxValue; txtSoldDate.Text = stockChosen.SoldDate == DateTime.MinValue ? String.Empty : stockChosen.SoldDate.ToString(); // = null; //DateTime.MaxValue;
txtSoldPrice.Text = stockChosen.SoldValue.ToString(); // = decimal.Parse("0"); txtSoldPrice.Text = stockChosen.SoldValue.ToString(); // = decimal.Parse("0");
txtComment.Text = stockChosen.Comment; txtComment.Text = stockChosen.Comment;
} }
private void AddValidateData() private void AddValidateData(bool New)
{ {
var currentStock = new StockMember(); var currentStock = new StockMember();
currentStock.StockId = txtStockName.Text.Trim(); currentStock.StockId = txtStockName.Text.Trim();
@ -101,10 +102,15 @@ namespace StockInfoCore
currentStock.BuyDate = string.IsNullOrWhiteSpace(txtBuyDate.Text) ? DateTime.Today : DateTime.Parse(txtBuyDate.Text); currentStock.BuyDate = string.IsNullOrWhiteSpace(txtBuyDate.Text) ? DateTime.Today : DateTime.Parse(txtBuyDate.Text);
currentStock.ActValue = decimal.Parse(string.IsNullOrEmpty(txtActValue.Text) ? "0" : txtActValue.Text); currentStock.ActValue = decimal.Parse(string.IsNullOrEmpty(txtActValue.Text) ? "0" : txtActValue.Text);
currentStock.ActAmount = long.Parse(string.IsNullOrEmpty(txtActAmount.Text) ? "0" : txtActAmount.Text); currentStock.ActAmount = long.Parse(string.IsNullOrEmpty(txtActAmount.Text) ? "0" : txtActAmount.Text);
currentStock.SoldDate = DateTime.Parse(txtSoldDate.Text); currentStock.SoldDate = txtSoldDate.Text.Trim() == "" ? DateTime.MinValue : DateTime.Parse(txtSoldDate.Text);
currentStock.SoldValue = decimal.Parse(txtSoldPrice.Text); currentStock.SoldValue = decimal.Parse(txtSoldPrice.Text);
currentStock.Comment = txtComment.Text; currentStock.Comment = txtComment.Text.Length<1?String.Empty: txtComment.Text;
//RegisteredStocks.Add(currentStock); //RegisteredStocks.Add(currentStock);
if (!New)
{
currentStock.Id = CurrentStockMember;
}
try try
{ {
_stockRepository.SaveStockMember(currentStock); _stockRepository.SaveStockMember(currentStock);
@ -119,6 +125,7 @@ namespace StockInfoCore
private void initiateRegWin() private void initiateRegWin()
{ {
txtStockName.Text = "";
txtStockExtId.Text = ""; txtStockExtId.Text = "";
txtBuyPrice.Text = ""; txtBuyPrice.Text = "";
txtBuyDate.Text = ""; txtBuyDate.Text = "";
@ -133,7 +140,7 @@ namespace StockInfoCore
private void btnSaveToDB_Click(object sender, EventArgs e) private void btnSaveToDB_Click(object sender, EventArgs e)
{ {
AddValidateData(); AddValidateData(false);
} }
private void txtBoughtAmount_TextChanged(object sender, EventArgs e) private void txtBoughtAmount_TextChanged(object sender, EventArgs e)
@ -149,5 +156,10 @@ namespace StockInfoCore
e.DrawText(); e.DrawText();
} }
} }
private void btnSaveNew_Click(object sender, EventArgs e)
{
AddValidateData(true);
}
} }
} }

View File

@ -34,7 +34,7 @@ namespace StockInfoCore
private readonly frmPerson _personWindow; private readonly frmPerson _personWindow;
private readonly frmPersonShareConnect _personShareConnect; private readonly frmPersonShareConnect _personShareConnect;
private readonly frmBackup _backupWindow; private readonly frmBackup _backupWindow;
private readonly frmEditStock _editStock;
bool loading = false; bool loading = false;
//private frmRegisterStock regWindow; //private frmRegisterStock regWindow;
//private frmMyStocks stockWindow; //private frmMyStocks stockWindow;
@ -58,7 +58,8 @@ namespace StockInfoCore
frmSelling sellWindow, frmSelling sellWindow,
frmPerson personWindow, frmPerson personWindow,
frmPersonShareConnect personShareConnect, frmPersonShareConnect personShareConnect,
frmBackup backupWindow frmBackup backupWindow,
frmEditStock editStock
) )
{ {
InitializeComponent(); InitializeComponent();
@ -76,6 +77,7 @@ namespace StockInfoCore
_personWindow = personWindow; _personWindow = personWindow;
_personShareConnect = personShareConnect; _personShareConnect = personShareConnect;
_backupWindow = backupWindow; _backupWindow = backupWindow;
_editStock = editStock;
} }
private void Form1_Load(object sender, EventArgs e) private void Form1_Load(object sender, EventArgs e)
@ -141,9 +143,9 @@ namespace StockInfoCore
private void btnValueView_Click(object sender, EventArgs e) private void btnValueView_Click(object sender, EventArgs e)
{ {
if(!GlobalStopwatch.IsRunning && GlobalStopwatch.EllapsedMillis>0) //if(!GlobalStopwatch.IsRunning && GlobalStopwatch.EllapsedMillis>0)
GlobalStopwatch.Restart(); // GlobalStopwatch.Restart();
else GlobalStopwatch.Start(); //else GlobalStopwatch.Start();
if (SelectedPersonId == 0) if (SelectedPersonId == 0)
{ {
@ -159,8 +161,8 @@ namespace StockInfoCore
_stockWindow.Stocks = _stockMarketRepository.StockMarketList; _stockWindow.Stocks = _stockMarketRepository.StockMarketList;
Cursor.Current = DefaultCursor; Cursor.Current = DefaultCursor;
GlobalStopwatch.Stop(); //GlobalStopwatch.Stop();
GlobalStopwatch.PrintSecs("Before Show Stockwindow"); //GlobalStopwatch.PrintSecs("Before Show Stockwindow");
_stockWindow.ShowDialog(); _stockWindow.ShowDialog();
} }
} }
@ -272,7 +274,7 @@ namespace StockInfoCore
private void btnBackupAll_Click(object sender, EventArgs e) private void btnBackupAll_Click(object sender, EventArgs e)
{ {
// backupWindow = new frmBackup(_backupRepository, _backupRoutines); // backupWindow = new frmBackup(_backupRepository, _backupRoutines);
_backupWindow.ShowDialog(); _backupWindow.ShowDialog();
} }
@ -282,7 +284,11 @@ namespace StockInfoCore
{ {
//MessageBox.Show($"{((DataGridView)sender).SelectedRows.ToString()} eventargs = {e.ToString()}" ); //MessageBox.Show($"{((DataGridView)sender).SelectedRows.ToString()} eventargs = {e.ToString()}" );
int id = Convert.ToInt32(dataGridView.Rows[dataGridView.CurrentRow.Index].Cells[0].Value); int id = Convert.ToInt32(dataGridView.Rows[dataGridView.CurrentRow.Index].Cells[0].Value);
MessageBox.Show($"Vald rads id = {id}"); if (DialogResult.OK == MessageBox.Show($"Vald rads id = {id}{Environment.NewLine}Ändra ?", "Fråga", MessageBoxButtons.OKCancel, MessageBoxIcon.Question))
{
_editStock.CurrentStockMember = id;
_editStock.ShowDialog();
};
} }
} }
} }

View File

@ -73,7 +73,7 @@ namespace StockInfoCore
} }
lblOwnerName.Text = $"* {ConnectedPerson.FirstName} {ConnectedPerson.LastName} *"; lblOwnerName.Text = $"* {ConnectedPerson.FirstName} {ConnectedPerson.LastName} *";
GlobalStopwatch.PrintSecs("In reload (New window)"); //GlobalStopwatch.PrintSecs("In reload (New window)");
txtBuyTotal.Text = BoughtSum.ToString(); txtBuyTotal.Text = BoughtSum.ToString();
txtBuyTotal.Refresh(); txtBuyTotal.Refresh();

View File

@ -62,6 +62,7 @@ namespace StockInfoCore
PersonStock ps = new PersonStock(); PersonStock ps = new PersonStock();
ps.PersonId = ConnectPerson.Id; ps.PersonId = ConnectPerson.Id;
ps.StockId = int.Parse(lstShares.SelectedValue.ToString()); ps.StockId = int.Parse(lstShares.SelectedValue.ToString());
ps.Comment = String.Empty;
_stockPersonConnect.SavePersonStockConnection(ps); _stockPersonConnect.SavePersonStockConnection(ps);
RefreshShareList(); RefreshShareList();
RefreshConnectedList(); RefreshConnectedList();