Files
WinFormDiApp/WinFormDi/frmPayments.cs

162 lines
5.6 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WinFormDiApp.BL.Models;
using WinFormDiApp.BLI;
namespace WinFormDiApp
{
public partial class frmPayments : Form
{
private ListViewColumnSorter lvwColumnSorter;
private bool _enableClearing;
private bool _enableDetailShow;
private readonly IAccountRecordRepository _accountRecordRepository;
public bool EnableClearing
{
get
{
return _enableClearing;
}
set
{
_enableClearing = value;
}
}
public bool EnableDetailShow
{
get
{
return _enableDetailShow;
}
set
{
_enableDetailShow = value;
}
}
public frmPayments(IAccountRecordRepository accountRecordRepository)
{
InitializeComponent();
//---------------------------------
// Create an instance of a ListView column sorter and assign it
// to the ListView control.
lvwColumnSorter = new ListViewColumnSorter();
lvPayments.ListViewItemSorter = lvwColumnSorter;
//---------------------------------
lvPayments.Items.Clear();
_accountRecordRepository = accountRecordRepository;
}
public IEnumerable<AccountRecord>? CustomPayments { get; set; } = null;
private void frmPayments_Load(object sender, EventArgs e)
{
//MessageBox.Show("Load");
btnRensa.Visible = _enableClearing;
lblTotal.Visible = _enableDetailShow;
txtSoekSumma.Visible = _enableDetailShow;
double totalSum = 0;
lvPayments.Items.Clear();
if (CustomPayments != null)
{
foreach (var account in CustomPayments)
{
var lvitem = lvPayments.Items.Add(account.Id.ToString());
lvitem.SubItems.Add(account.Mottagare);
lvitem.SubItems.Add(account.Konto);
lvitem.SubItems.Add(account.Belopp.ToString());
totalSum += account.Belopp;
lvitem.SubItems.Add(account.BetalDatum.ToShortDateString());
lvitem.SubItems.Add(account.Avisering);
}
}
txtSoekSumma.Text = totalSum.ToString();
}
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
private void frmPayments_Shown(object sender, EventArgs e)
{
//MessageBox.Show("Shown");
if (CustomPayments == null)
{
lvPayments.Items.Clear();
var payments = _accountRecordRepository.GetAllAccounts();
foreach (var account in payments)
{
var lvitem = lvPayments.Items.Add(account.Id.ToString());
lvitem.SubItems.Add(account.Mottagare);
lvitem.SubItems.Add(account.Konto);
lvitem.SubItems.Add(account.Belopp.ToString());
lvitem.SubItems.Add(account.BetalDatum.ToShortDateString());
lvitem.SubItems.Add(account.Avisering);
}
}
else CustomPayments = null;
}
private void btnRensa_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Verkligen Säker på att rensa DB?", "Payments", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
MessageBox.Show("Nu rensar vi");
_accountRecordRepository.DeleteAllAccountRecords();
lvPayments.Items.Clear();
var payments = _accountRecordRepository.GetAllAccounts();
foreach (var account in payments)
{
var lvitem = lvPayments.Items.Add(account.Id.ToString());
lvitem.SubItems.Add(account.Mottagare);
lvitem.SubItems.Add(account.Konto);
lvitem.SubItems.Add(account.Belopp.ToString());
lvitem.SubItems.Add(account.BetalDatum.ToShortDateString());
lvitem.SubItems.Add(account.Avisering);
}
}
}
private void lvPayments_ColumnClick(object sender, ColumnClickEventArgs e)
{
// Determine if clicked column is already the column that is being sorted.
if (e.Column == lvwColumnSorter.SortColumn)
{
// Reverse the current sort direction for this column.
if (lvwColumnSorter.Order == SortOrder.Ascending)
{
lvwColumnSorter.Order = SortOrder.Descending;
}
else
{
lvwColumnSorter.Order = SortOrder.Ascending;
}
}
else
{
// Set the column number that is to be sorted; default to ascending.
lvwColumnSorter.SortColumn = e.Column;
lvwColumnSorter.Order = SortOrder.Ascending;
}
// Perform the sort with these new sort options.
lvPayments.Sort();
}
//------------------------------------------------- sorting ------------
//------------------------------------------------- sorting ------------
}
}