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? 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 ------------ } }