313 lines
7.6 KiB
C#
313 lines
7.6 KiB
C#
#region
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using MySql.Data.MySqlClient;
|
|
using website.Models.signups;
|
|
|
|
#endregion
|
|
|
|
namespace website.Controllers {
|
|
[ApiController]
|
|
[Route("[controller]")]
|
|
public class SignupController : ControllerBase {
|
|
[HttpGet("~/admin/signup/get")]
|
|
public ActionResult<Signup> get(int signupId) {
|
|
MySqlConnection cnn;
|
|
try {
|
|
cnn = Utilities.getConnection();
|
|
}
|
|
catch (MySqlException e) {
|
|
Console.WriteLine(e);
|
|
return StatusCode(531, null);
|
|
}
|
|
|
|
try {
|
|
cnn.Open();
|
|
}
|
|
catch (MySqlException e) {
|
|
Console.WriteLine(e);
|
|
return StatusCode(532, null);
|
|
}
|
|
|
|
MySqlCommand cmd = new("SELECT * FROM san_antonio_senior_golf.signups WHERE signupId=@signupId", cnn);
|
|
cmd.Parameters.AddWithValue("@signupId", signupId);
|
|
MySqlDataReader rdr = cmd.ExecuteReader();
|
|
|
|
Signup signup = null;
|
|
while (rdr.Read())
|
|
signup = new Signup {
|
|
signupId = rdr.GetInt32("signupId"),
|
|
eventId = rdr.GetInt32("eventId"),
|
|
firstName = rdr.GetString("firstName"),
|
|
lastName = rdr.GetString("lastName")
|
|
};
|
|
|
|
cnn.Close();
|
|
return signup == null ? StatusCode(204, null) : StatusCode(200, signup);
|
|
}
|
|
|
|
[HttpGet("~/admin/signup/getAll")]
|
|
public ActionResult<List<Signup>> getAll() {
|
|
MySqlConnection cnn;
|
|
try {
|
|
cnn = Utilities.getConnection();
|
|
}
|
|
catch (MySqlException e) {
|
|
Console.WriteLine(e);
|
|
return StatusCode(531, null);
|
|
}
|
|
|
|
try {
|
|
cnn.Open();
|
|
}
|
|
catch (MySqlException e) {
|
|
Console.WriteLine(e);
|
|
return StatusCode(532, null);
|
|
}
|
|
|
|
MySqlCommand cmd = new("SELECT * FROM san_antonio_senior_golf.signups", cnn);
|
|
MySqlDataReader rdr = cmd.ExecuteReader();
|
|
|
|
List<Signup> signups = new();
|
|
while (rdr.Read())
|
|
signups.Add(new Signup {
|
|
signupId = rdr.GetInt32("signupId"),
|
|
eventId = rdr.GetInt32("eventId"),
|
|
firstName = rdr.GetString("firstName"),
|
|
lastName = rdr.GetString("lastName")
|
|
});
|
|
|
|
cnn.Close();
|
|
return signups.Count == 0 ? StatusCode(204, null) : StatusCode(200, signups);
|
|
}
|
|
|
|
[HttpGet("~/admin/signup/getAllCsv.csv")]
|
|
public string getAllCsv() {
|
|
MySqlConnection cnn;
|
|
try {
|
|
cnn = Utilities.getConnection();
|
|
}
|
|
catch (MySqlException e) {
|
|
Console.WriteLine(e);
|
|
return null;
|
|
}
|
|
|
|
try {
|
|
cnn.Open();
|
|
}
|
|
catch (MySqlException e) {
|
|
Console.WriteLine(e);
|
|
return null;
|
|
}
|
|
|
|
MySqlCommand cmd =
|
|
new(
|
|
"select signupId, e.eventId, date, time, location, firstName, lastName from signups join events e on e.eventId = signups.eventId ",
|
|
cnn);
|
|
MySqlDataReader rdr = cmd.ExecuteReader();
|
|
|
|
List<SignupCsv> signups = new();
|
|
while (rdr.Read())
|
|
signups.Add(new SignupCsv {
|
|
signupId = rdr.GetInt32("signupId"),
|
|
eventId = rdr.GetInt32("eventId"),
|
|
date = rdr.GetDateTime("date"),
|
|
time = rdr.IsDBNull(3) ? null : rdr.GetTimeSpan("time"),
|
|
location = rdr.GetString("location"),
|
|
firstName = rdr.GetString("firstName"),
|
|
lastName = rdr.GetString("lastName")
|
|
});
|
|
|
|
cnn.Close();
|
|
string result = "signupId,eventId,date,time,location,firstName,lastName\n" +
|
|
string.Join("\n", signups.Select(x => x.ToString()).ToArray()) + "\n";
|
|
return result;
|
|
}
|
|
|
|
[HttpGet("~/admin/signup/getForEvent")]
|
|
public ActionResult<List<Signup>> getForEvent(int eventId) {
|
|
MySqlConnection cnn;
|
|
try {
|
|
cnn = Utilities.getConnection();
|
|
}
|
|
catch (MySqlException e) {
|
|
Console.WriteLine(e);
|
|
return StatusCode(531, null);
|
|
}
|
|
|
|
try {
|
|
cnn.Open();
|
|
}
|
|
catch (MySqlException e) {
|
|
Console.WriteLine(e);
|
|
return StatusCode(532, null);
|
|
}
|
|
|
|
MySqlCommand cmd = new("SELECT * FROM san_antonio_senior_golf.signups WHERE eventId=@eventId", cnn);
|
|
cmd.Parameters.AddWithValue("@eventId", eventId);
|
|
MySqlDataReader rdr = cmd.ExecuteReader();
|
|
|
|
List<Signup> signups = new();
|
|
while (rdr.Read())
|
|
signups.Add(new Signup {
|
|
signupId = rdr.GetInt32("signupId"),
|
|
eventId = rdr.GetInt32("eventId"),
|
|
firstName = rdr.GetString("firstName"),
|
|
lastName = rdr.GetString("lastName")
|
|
});
|
|
|
|
cnn.Close();
|
|
return signups.Count == 0 ? StatusCode(204, null) : StatusCode(200, signups);
|
|
}
|
|
|
|
[HttpGet("~/admin/signup/getForPeople")]
|
|
public ActionResult<List<Signup>> getForPeople(string firstName, string lastName) {
|
|
MySqlConnection cnn;
|
|
try {
|
|
cnn = Utilities.getConnection();
|
|
}
|
|
catch (MySqlException e) {
|
|
Console.WriteLine(e);
|
|
return StatusCode(531, null);
|
|
}
|
|
|
|
try {
|
|
cnn.Open();
|
|
}
|
|
catch (MySqlException e) {
|
|
Console.WriteLine(e);
|
|
return StatusCode(532, null);
|
|
}
|
|
|
|
MySqlCommand cmd =
|
|
new("SELECT * FROM san_antonio_senior_golf.signups WHERE firstName=@firstName AND lastName=@lastName",
|
|
cnn);
|
|
cmd.Parameters.AddWithValue("@firstName", firstName);
|
|
cmd.Parameters.AddWithValue("@lastName", lastName);
|
|
MySqlDataReader rdr = cmd.ExecuteReader();
|
|
|
|
List<Signup> signups = new();
|
|
while (rdr.Read())
|
|
signups.Add(new Signup {
|
|
signupId = rdr.GetInt32("signupId"),
|
|
eventId = rdr.GetInt32("eventId"),
|
|
firstName = rdr.GetString("firstName"),
|
|
lastName = rdr.GetString("lastName")
|
|
});
|
|
|
|
cnn.Close();
|
|
return signups.Count == 0 ? StatusCode(204, null) : StatusCode(200, signups);
|
|
}
|
|
|
|
[HttpPost("~/signup/create")]
|
|
public ActionResult create([FromBody] Signup signup) {
|
|
MySqlConnection cnn;
|
|
try {
|
|
cnn = Utilities.getConnection();
|
|
}
|
|
catch (MySqlException e) {
|
|
Console.WriteLine(e);
|
|
return StatusCode(531);
|
|
}
|
|
|
|
try {
|
|
cnn.Open();
|
|
}
|
|
catch (MySqlException e) {
|
|
Console.WriteLine(e);
|
|
return StatusCode(532);
|
|
}
|
|
|
|
MySqlCommand cmd =
|
|
new(
|
|
"INSERT INTO san_antonio_senior_golf.signups (eventId, firstName, lastName)VALUES (@eventId, @firstName, @lastName);"
|
|
, cnn);
|
|
cmd.Parameters.AddWithValue("@eventId", signup.eventId);
|
|
cmd.Parameters.AddWithValue("@firstName", signup.firstName);
|
|
cmd.Parameters.AddWithValue("@lastName", signup.lastName);
|
|
try {
|
|
cmd.ExecuteNonQuery();
|
|
}
|
|
catch (MySqlException) {
|
|
return StatusCode(434);
|
|
}
|
|
|
|
cnn.Close();
|
|
return NoContent();
|
|
}
|
|
|
|
[HttpDelete("~/signup/delete")]
|
|
public ActionResult delete([FromBody] Signup signup) {
|
|
MySqlConnection cnn;
|
|
try {
|
|
cnn = Utilities.getConnection();
|
|
}
|
|
catch (MySqlException e) {
|
|
Console.WriteLine(e);
|
|
return StatusCode(531);
|
|
}
|
|
|
|
try {
|
|
cnn.Open();
|
|
}
|
|
catch (MySqlException e) {
|
|
Console.WriteLine(e);
|
|
return StatusCode(532);
|
|
}
|
|
|
|
MySqlCommand cmd =
|
|
new(
|
|
"DELETE FROM san_antonio_senior_golf.signups WHERE eventId=@eventId AND firstName=@firstName AND lastName=@lastName;"
|
|
, cnn);
|
|
cmd.Parameters.AddWithValue("@eventId", signup.eventId);
|
|
cmd.Parameters.AddWithValue("@firstName", signup.firstName);
|
|
cmd.Parameters.AddWithValue("@lastName", signup.lastName);
|
|
try {
|
|
cmd.ExecuteNonQuery();
|
|
}
|
|
catch (MySqlException) {
|
|
return BadRequest();
|
|
}
|
|
|
|
cnn.Close();
|
|
return NoContent();
|
|
}
|
|
|
|
[HttpDelete("~/admin/signup/delete")]
|
|
public IActionResult delete(int signupId) {
|
|
MySqlConnection cnn;
|
|
try {
|
|
cnn = Utilities.getConnection();
|
|
}
|
|
catch (MySqlException e) {
|
|
Console.WriteLine(e);
|
|
return StatusCode(531);
|
|
}
|
|
|
|
try {
|
|
cnn.Open();
|
|
}
|
|
catch (MySqlException e) {
|
|
Console.WriteLine(e);
|
|
return StatusCode(532);
|
|
}
|
|
|
|
MySqlCommand cmd =
|
|
new(
|
|
"DELETE FROM san_antonio_senior_golf.signups WHERE signupId=@signupId;", cnn);
|
|
cmd.Parameters.AddWithValue("@signupId", signupId);
|
|
try {
|
|
cmd.ExecuteNonQuery();
|
|
}
|
|
catch (MySqlException) {
|
|
return BadRequest();
|
|
}
|
|
|
|
cnn.Close();
|
|
return NoContent();
|
|
}
|
|
}
|
|
} |