Files
elma/ELMA/Form1.cs
T
2020-08-24 23:23:13 +02:00

156 lines
4.7 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Entity;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using AppData;
namespace ELMA
{
public partial class MainForm : Form
{
ElmahModel model = new ElmahModel();
public MainForm()
{
InitializeComponent();
myInit();
}
private void myInit()
{
// carico DB con filtri
//var setApp = dbFilt.Where(x => x.Cat == "Application");
var setApp = model.ELMAH_Error
.Select(e => new { e.Application })
.Distinct()
.ToList();
foreach (var item in setApp)
{
listApp.Items.Add(item.Application);
}
listApp.SelectedIndex = 0;
var setHost = model.ELMAH_Error
.Select(e => new { e.Host })
.Distinct()
.ToList();
foreach (var item in setHost)
{
listHost.Items.Add(item.Host);
}
listHost.SelectedIndex = 0;
var setStatus = model.ELMAH_Error
.Select(e => new { e.StatusCode })
.Distinct()
.ToList();
foreach (var item in setStatus)
{
listStatus.Items.Add(item.StatusCode);
}
listStatus.SelectedIndex = 0;
var setType = model.ELMAH_Error
.Select(e => new { e.Type })
.Distinct()
.ToList();
foreach (var item in setType)
{
listType.Items.Add(item.Type);
}
listType.SelectedIndex = 0;
var setUser = model.ELMAH_Error
.Select(e => new { e.User })
.Distinct()
.ToList();
//var setUser = dbFilt.Where(x => x.Cat == "User").ToList();
foreach (var item in setUser)
{
listUsers.Items.Add(item.User);
}
listUsers.SelectedIndex = 0;
}
protected string selApp { get { return listApp.SelectedItem.ToString(); } }
protected string selStatus { get { return listStatus.SelectedItem.ToString(); } }
protected string selHost { get { return listHost.SelectedItem.ToString(); } }
protected string selType { get { return listType.SelectedItem.ToString(); } }
protected string selUser { get { return listUsers.SelectedItem.ToString(); } }
private void btnLoad_Click(object sender, EventArgs e)
{
updateSelection();
//this.bsErrors.DataSource = model.ELMAH_Error.Local.ToBindingList();
}
private void updateSelection()
{
List<ELMAH_Error> subset = getFiltData();
this.bsErrors.DataSource = subset;
}
private List<ELMAH_Error> getFiltData()
{
var dbSet = model.ELMAH_Error;
int statusCode = 0;
int.TryParse(selStatus, out statusCode);
string selApp = listApp.SelectedItem.ToString();
// fix DGV
var subset = dbSet.Where(x =>
x.StatusCode == statusCode
&& x.Application == selApp
&& x.Host == selHost
&& x.Type == selType
&& x.User == selUser
).ToList();
return subset;
}
private void listApp_SelectedIndexChanged(object sender, EventArgs e)
{
//updateSelection();
}
private void listHost_SelectedIndexChanged(object sender, EventArgs e)
{
//updateSelection();
}
private void listStatus_SelectedIndexChanged(object sender, EventArgs e)
{
//updateSelection();
}
private void listType_SelectedIndexChanged(object sender, EventArgs e)
{
//updateSelection();
}
private void listUsers_SelectedIndexChanged(object sender, EventArgs e)
{
//updateSelection();
}
private void btnDelete_Click(object sender, EventArgs e)
{
// elimino 1:1 da selezione
foreach (var item in getFiltData())
{
model.ELMAH_Error.Remove(item);
}
// salvo
model.SaveChangesAsync();
// aggiorno
updateSelection();
}
}
}