//////////////MAIN.
CS/////////////////////////
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Text;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace devConference_Exam
{
public partial class MainForm : Form
{
public static List<AccesPackage> packageList = new List<AccesPackage>();
List<Registration> registrations = new List<Registration>();
public MainForm()
{
InitializeComponent();
//readFromFile();
}
public void readFromFile()
{
string line;
try
{
StringReader stringReader = new StringReader("D:\\Proiecte C#\\
devConference_Exam\\AccesPackage.txt");
while ((line = stringReader.ReadLine()) != null)
{
string[] lines = line.Split(',');
AccesPackage package = new AccesPackage();
package.Name = lines[0];
package.Price = double.Parse(lines[1]);
package.Id = int.Parse(lines[2]);
packageList.Add(package);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public void updateCost()
{
double cost = 0;
foreach (Registration registration in registrations)
{
cost += (double)registration;
}
labTotalCost.Text = $"Total cost: ${cost:0.00}";
}
public void DisplayRegistrations()
{
lvReg.Items.Clear();
registrations.Sort();
foreach (Registration registration in registrations)
{
ListViewItem lvi = new ListViewItem(registration.CompanyName);
lvi.SubItems.Add(registration.NoOfPasses.ToString());
lvi.SubItems.Add(registration.AccesPackageId.ToString());
lvi.Tag = registration;
lvReg.Items.Add(lvi);
}
}
private void MainForm_Load(object sender, EventArgs e)
{
public void EditReg(ListViewItem item)
{
RegistrationForm registrationForm = new RegistrationForm();
registrationForm.Registration = new Registration();
if (registrationForm.ShowDialog() == DialogResult.OK)
{
registrations.Add(registrationForm.Registration);
DisplayRegistrations();
}
}
private void btnAddRegistration_Click(object sender, EventArgs e)
{
RegistrationForm registrationForm = new RegistrationForm();
registrationForm.Registration = new Registration();
if (registrationForm.ShowDialog() == DialogResult.OK)
{
registrations.Add(registrationForm.Registration);
DisplayRegistrations();
}
}
private void lvReg_MouseClick(object sender, MouseEventArgs e)
{
private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{
private void editToolStripMenuItem_Click(object sender, EventArgs e)
{
RegistrationForm registrationForm = new RegistrationForm();
registrationForm.Registration = (Registration)
lvReg.SelectedItems[0].Tag;
if (registrationForm.ShowDialog() == DialogResult.OK)
{
DisplayRegistrations();
}
}
private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
{
Registration reg = (Registration) lvReg.SelectedItems[0].Tag;
registrations.Remove(reg);
DisplayRegistrations();
private void btnChart_Click(object sender, EventArgs e)
{
Chart chart = new Chart(registrations, packageList);
chart.ShowDialog();
}
}
}
////////////////////////
REGISTRATIONFORM.CS//////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace devConference_Exam
{
public partial class RegistrationForm : Form
{
public Registration Registration { get; set; }
public List<AccesPackage> Packages { get; set; }
public RegistrationForm()
{
InitializeComponent();
}
private void tbCompanyName_TextChanged(object sender, EventArgs e)
{
private void btnOK2_Click(object sender, EventArgs e)
{
if (Registration != null)
{
Registration.AccesPackageId = (int)nudAccessId.Value;
Registration.NoOfPasses =(int) nudNoOfPasses.Value;
Registration.CompanyName = tbCompanyName.Text;
}
}
private void RegistrationForm_Load(object sender, EventArgs e)
{
if (Registration != null)
{
nudAccessId.Value = (int)Registration.AccesPackageId;
nudNoOfPasses.Value = Registration.NoOfPasses;
tbCompanyName.Text = Registration.CompanyName;
}
this.nudNoOfPasses.Validating += new
System.ComponentModel.CancelEventHandler(this.nudNoOfPasses_Validating);
private void nudNoOfPasses_Validating(object sender, CancelEventArgs e)
{
if ((int)nudNoOfPasses.Value < 1)
{
e.Cancel = true;
errorProvider1.SetError(nudNoOfPasses, "Invalid nr of passes");
return;
}
else
{
e.Cancel = false;
errorProvider1.SetError(nudNoOfPasses, "");
}
}
}
}
/////////////////////////REGISTRATION.CS////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace devConference_Exam
{
public class Registration : IComparable<Registration>
{
public string CompanyName { get; set; }
public int NoOfPasses { get; set; }
public int AccesPackageId { get; set; }
public static List<AccesPackage> AccesPackages;
public Registration() { }
public Registration(string companyName, int noOfPasses, int accesPackageId,
List<AccesPackage> packageList)
{
CompanyName = companyName;
NoOfPasses = noOfPasses;
AccesPackageId = accesPackageId;
AccesPackages = packageList;
public static explicit operator double(Registration r)
{
for (int i = 0; i < AccesPackages.Count - 1; i++)
{
if (AccesPackages[i].Id == r.AccesPackageId)
{
return r.NoOfPasses * AccesPackages[i].Price;
}
}
return 0;
}
public int CompareTo(Registration other)
{
return this.NoOfPasses - other.NoOfPasses;
}
}
}
//////////////////////CHART.CS///////////////////////////////////////////////
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 System.Windows.Forms.DataVisualization.Charting;
namespace devConference_Exam
{
public partial class Chart : Form
{
public List<Registration> registrations = new List<Registration>();
public List<AccesPackage> packages = new List<AccesPackage>();
public int[] noRegistrations = new int[5];
public Chart(List<Registration> listRegistrations, List<AccesPackage>
listPackages)
{
InitializeComponent();
registrations = listRegistrations;
computeChart();
var series = chartRegistrations.Series.First();
series.ChartType = SeriesChartType.Column;
series.Name = "Registrations";
series.Points.AddXY("Silver", noRegistrations[0]);
series.Points.AddXY("Gold", noRegistrations[1]);
series.Points.AddXY("Platinum", noRegistrations[2]);
}
private void computeChart()
{
foreach (Registration registration in registrations)
{
noRegistrations[registration.AccesPackageId - 1]++;
}
}
}
}