Csvnotes
This commit is contained in:
57
StockHistory/HandleCsvNotes.cs
Normal file
57
StockHistory/HandleCsvNotes.cs
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
using StockHistory.Models;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace StockHistory;
|
||||||
|
|
||||||
|
public class HandleCsvNotes : IHandleCsvNotes
|
||||||
|
{
|
||||||
|
|
||||||
|
private List<string> lines = new();
|
||||||
|
private string[] Header_table = new string[0];
|
||||||
|
|
||||||
|
public List<TransactionNote> GetTransactionNotes(string filePath)
|
||||||
|
{
|
||||||
|
lines = File.ReadAllLines(filePath).ToList();
|
||||||
|
Header_table = lines[0].Split(';');
|
||||||
|
var transactionNotes = new List<TransactionNote>();
|
||||||
|
foreach (var line in lines.Skip(1))
|
||||||
|
{
|
||||||
|
var values = line.Split(';');
|
||||||
|
var test = values[NamePos(Header_table, "Typ av transaktion")];
|
||||||
|
if (test == "Köp" || test == "Sälj")
|
||||||
|
{
|
||||||
|
var transactionNote = new TransactionNote
|
||||||
|
{
|
||||||
|
TransactionDate = DateTime.Parse(values[NamePos(Header_table, "Datum")]),
|
||||||
|
TransactionType = values[NamePos(Header_table, "Typ av transaktion")],
|
||||||
|
StockCode = values[NamePos(Header_table, @"Värdepapper/beskrivning")],
|
||||||
|
StockPrice = decimal.Parse((values[NamePos(Header_table, "Kurs")] == "") ? "0" : values[NamePos(Header_table, "Kurs")]),
|
||||||
|
StockQuantity = int.Parse(values[NamePos(Header_table, "Antal")]),
|
||||||
|
Commission = decimal.Parse((values[NamePos(Header_table, "Courtage")] == "") ? "0" : values[NamePos(Header_table, "Courtage")]),
|
||||||
|
TotalAmount = decimal.Parse((values[NamePos(Header_table, "Belopp")] == "") ? "0" : values[NamePos(Header_table, "Belopp")]) - decimal.Parse((values[NamePos(Header_table, "Courtage")] == "") ? "0" : values[NamePos(Header_table, "Courtage")]),
|
||||||
|
AmountToPay = decimal.Parse((values[NamePos(Header_table, "Belopp")] == "") ? "0" : values[NamePos(Header_table, "Belopp")])
|
||||||
|
};
|
||||||
|
transactionNotes.Add(transactionNote);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return transactionNotes;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int NamePos(string[] h_table, string value)
|
||||||
|
{
|
||||||
|
var pos = Array.IndexOf(h_table, value);
|
||||||
|
if (pos != -1)
|
||||||
|
{
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Warning: Unable to find '{value}'");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
9
StockHistory/IHandleCsvNotes.cs
Normal file
9
StockHistory/IHandleCsvNotes.cs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
using StockHistory.Models;
|
||||||
|
|
||||||
|
namespace StockHistory
|
||||||
|
{
|
||||||
|
public interface IHandleCsvNotes
|
||||||
|
{
|
||||||
|
List<TransactionNote> GetTransactionNotes(string filePath);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -41,6 +41,7 @@ namespace StockHistory
|
|||||||
services.AddTransient<IPdfOpener, PdfOpener>();
|
services.AddTransient<IPdfOpener, PdfOpener>();
|
||||||
services.AddTransient<IPdfFormatter, PdfFormatter>();
|
services.AddTransient<IPdfFormatter, PdfFormatter>();
|
||||||
services.AddTransient<ITransactionNotesServices, TransactionNotesServices>();
|
services.AddTransient<ITransactionNotesServices, TransactionNotesServices>();
|
||||||
|
services.AddTransient<IHandleCsvNotes, HandleCsvNotes>();
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,19 +19,22 @@ public partial class frmStockHistoryInit : Form
|
|||||||
private readonly IPdfOpener _pdfOpener;
|
private readonly IPdfOpener _pdfOpener;
|
||||||
private readonly IPdfFormatter _pdfFormatter;
|
private readonly IPdfFormatter _pdfFormatter;
|
||||||
private readonly ITransactionNotesServices _transactionNotes;
|
private readonly ITransactionNotesServices _transactionNotes;
|
||||||
|
private readonly IHandleCsvNotes _handleCsvNotes;
|
||||||
private List<PdfSida> _pdfSidor = new();
|
private List<PdfSida> _pdfSidor = new();
|
||||||
private List<PdfSida> localPdfSida = new();
|
private List<PdfSida> localPdfSida = new();
|
||||||
|
|
||||||
public frmStockHistoryInit(
|
public frmStockHistoryInit(
|
||||||
IPdfOpener pdfOpener,
|
IPdfOpener pdfOpener,
|
||||||
IPdfFormatter pdfFormatter,
|
IPdfFormatter pdfFormatter,
|
||||||
ITransactionNotesServices transactionNotes
|
ITransactionNotesServices transactionNotes,
|
||||||
|
IHandleCsvNotes handleCsvNotes
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
_pdfOpener = pdfOpener;
|
_pdfOpener = pdfOpener;
|
||||||
_pdfFormatter = pdfFormatter;
|
_pdfFormatter = pdfFormatter;
|
||||||
_transactionNotes = transactionNotes;
|
_transactionNotes = transactionNotes;
|
||||||
|
_handleCsvNotes = handleCsvNotes;
|
||||||
btnAnalysera.Enabled = false;
|
btnAnalysera.Enabled = false;
|
||||||
|
|
||||||
Shown += async (s, e) => await LoadBusinessAsync();
|
Shown += async (s, e) => await LoadBusinessAsync();
|
||||||
@ -76,7 +79,7 @@ public partial class frmStockHistoryInit : Form
|
|||||||
if (lblFileName.Text.ToLower().EndsWith("csv"))
|
if (lblFileName.Text.ToLower().EndsWith("csv"))
|
||||||
{
|
{
|
||||||
var Result = string.Empty; //DocoticPdfReading.ExtractText(lblFileName.Text);
|
var Result = string.Empty; //DocoticPdfReading.ExtractText(lblFileName.Text);
|
||||||
SelectAvanzaPdfData(Result);
|
SelectAvanzaPdfData(lblFileName.Text);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -87,32 +90,41 @@ public partial class frmStockHistoryInit : Form
|
|||||||
lblFileName.Text = string.Empty;
|
lblFileName.Text = string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SelectAvanzaPdfData(string PdfResult)
|
private void SelectAvanzaPdfData(string infile)
|
||||||
{
|
{
|
||||||
txtFound.Text = string.Empty;
|
txtFound.Text = string.Empty;
|
||||||
List<string> result = PdfResult.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList();
|
|
||||||
|
List<TransactionNote> result = _handleCsvNotes.GetTransactionNotes(infile);
|
||||||
|
|
||||||
|
foreach (TransactionNote note in result) {
|
||||||
|
// Selected.Add(note);
|
||||||
|
txtFound.Text += note.ToString() + Environment.NewLine;
|
||||||
|
txtFound.Refresh();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
//List<string> selected = new();
|
//List<string> selected = new();
|
||||||
|
|
||||||
foreach (var line in result)
|
//foreach (var line in result)
|
||||||
{
|
//{
|
||||||
if (!string.IsNullOrWhiteSpace(line) && line.StartsWith("Affärsdag")
|
// if (!string.IsNullOrWhiteSpace(line) && line.StartsWith("Affärsdag")
|
||||||
|| !string.IsNullOrWhiteSpace(line) && line.StartsWith("Handelstidpunkt")
|
// || !string.IsNullOrWhiteSpace(line) && line.StartsWith("Handelstidpunkt")
|
||||||
|| !string.IsNullOrWhiteSpace(line) && line.StartsWith("Värdepapper")
|
// || !string.IsNullOrWhiteSpace(line) && line.StartsWith("Värdepapper")
|
||||||
|| !string.IsNullOrWhiteSpace(line) && line.StartsWith("Kurs")
|
// || !string.IsNullOrWhiteSpace(line) && line.StartsWith("Kurs")
|
||||||
|| !string.IsNullOrWhiteSpace(line) && line.StartsWith("Genomsnittlig")
|
// || !string.IsNullOrWhiteSpace(line) && line.StartsWith("Genomsnittlig")
|
||||||
|| !string.IsNullOrWhiteSpace(line) && line.StartsWith("Antal")
|
// || !string.IsNullOrWhiteSpace(line) && line.StartsWith("Antal")
|
||||||
|| !string.IsNullOrWhiteSpace(line) && line.StartsWith("Köpeskilling")
|
// || !string.IsNullOrWhiteSpace(line) && line.StartsWith("Köpeskilling")
|
||||||
|| !string.IsNullOrWhiteSpace(line) && line.StartsWith("Courtage")
|
// || !string.IsNullOrWhiteSpace(line) && line.StartsWith("Courtage")
|
||||||
|| !string.IsNullOrWhiteSpace(line) && line.StartsWith("Belopp")
|
// || !string.IsNullOrWhiteSpace(line) && line.StartsWith("Belopp")
|
||||||
|| !string.IsNullOrWhiteSpace(line) && line.StartsWith("Vi bekräftar")
|
// || !string.IsNullOrWhiteSpace(line) && line.StartsWith("Vi bekräftar")
|
||||||
)
|
// )
|
||||||
{
|
// {
|
||||||
Selected.Add(line);
|
// Selected.Add(line);
|
||||||
txtFound.Text += line + Environment.NewLine;
|
// txtFound.Text += line + Environment.NewLine;
|
||||||
txtFound.Refresh();
|
// txtFound.Refresh();
|
||||||
|
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SelectPdfData(string PdfResult)
|
private void SelectPdfData(string PdfResult)
|
||||||
|
|||||||
Reference in New Issue
Block a user