Files
it-projekt/Form1.cs
2022-05-16 18:49:11 +02:00

119 lines
3.8 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Text.Json;
using System.Windows.Forms;
namespace it_projekt
{
public partial class Form1 : Form
{
private Database db = null;
public Form1()
{
InitializeComponent();
this.exportBtn.Enabled = false;
}
private void exportBtn_Click(object sender, EventArgs e)
{
if (jsonRBtn.Checked)
export("All files (*.*)|*.*|json files (*.json)|*.json", "benutzer.json");
else
export("All files (*.*)|*.*|xml files (*.xml)|*.xml", "benutzer.xml");
}
private void loginBtn_Click(object sender, EventArgs e)
{
LoadUsersFromTable(this.userTxt.Text, this.passTxt.Text);
}
public void LoadUsersFromTable(string user, string password)
{
db = Database.getDatabase(user, password);
if (db.Persons == null)
{
Database.resetDatabase();
MessageBox.Show("Connection to Database failed! \nPlease Try again.", "Database Error!");
}
else {
foreach (Person person in db.Persons)
{
this.dataGrid.Rows.Add(person.Id, person.Firstname, person.Lastname, person.department_short, person.department_long, person.CreationDate, false);
}
this.loginBtn.Enabled = false;
this.exportBtn.Enabled = true;
}
}
private void dataGrid_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
private void export(string Filter, string FileName)
{
Stream myStream;
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = Filter;
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
saveFileDialog1.FileName = FileName;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
if ((myStream = saveFileDialog1.OpenFile()) != null)
{
List<Person> markedUsers = new List<Person>();
foreach (DataGridViewRow row in dataGrid.Rows)
{
if (row.Cells[6].Value != null)
{
if (row.Cells[6].Value.ToString() == "True")
{
markedUsers.Add(db.Persons.Find(person => person.Id == row.Cells[0].Value.ToString()));
}
}
}
StreamWriter sw = new StreamWriter(myStream);
if (FileName.Contains("xml"))
{
var writer = new System.Xml.Serialization.XmlSerializer(typeof(List<Person>));
writer.Serialize(sw, markedUsers);
}
else //If xml is not selected, json is the only other option
{
string json = JsonSerializer.Serialize(markedUsers);
sw.Write(json);
}
sw.Flush();
sw.Close();
myStream.Close();
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void jsonRBtn_CheckedChanged(object sender, EventArgs e)
{
}
private void xmlRBtn_CheckedChanged(object sender, EventArgs e)
{
}
}
}