async Task UserDetailViewModel_PropertyChangedAsync(object sender, PropertyChangedEventArgs e) { Console.WriteLine("Property " + e.PropertyName + " changed"); switch (e.PropertyName) { case "Email": { EmailErrors.Clear(); var Errors = await GetEmailErrors(Email); EmailErrors.AddRange <string>(Errors); useEmailErrors?.Invoke(Errors); } break; case "Password": { PasswordErrors.Clear(); var Errors = GetPasswordErrors(Password); PasswordErrors.AddRange <string>(Errors); usePasswordErrors?.Invoke(Errors); } break; case "ConfirmPassword": { ConfirmPasswordErrors.Clear(); var Errors = GetConfirmPasswordErrors(Password, ConfirmPassword); ConfirmPasswordErrors.AddRange <string>(Errors); useConfirmPasswordErrors?.Invoke(Errors); } break; } }
//----------------------------User requested access----------------------------------- public bool requestAdminPrivileges(bool didUserRequestAccess, string username, string password) { try { if (didUserRequestAccess == true) { //Get Connection String var configuration = GetConfiguration(); string connectionString = configuration.GetConnectionString("AWSMAINDB"); //Update table that user requested access using (MySqlConnection conn = new MySqlConnection(connectionString)) { conn.Open(); MySqlCommand cmd = new MySqlCommand("UPDATE loginTable SET didUserRequestPrivileges = 'true' WHERE username = @username AND usersPassword = @usersPassword", conn); cmd.Parameters.Add("@username", MySqlDbType.VarChar).Value = username; cmd.Parameters.Add("usersPassword", MySqlDbType.VarChar).Value = password; cmd.ExecuteNonQuery(); } return(true); } else { return(false); } } catch (Exception e) { EmailErrors errors = new EmailErrors(); errors.autoEmailDeveloperAboutIssue("adminFunction.cs", "requestAdminPrivileges", e.ToString()); return(false); } }
//----------------------------Get questions for test----------------------------------- public List <TakeATestModel> getTestQuestions(string username, string password, string courseID) { try { //Declare variables List <TakeATestModel> testModel = new List <TakeATestModel>(); //Get Connection String var configuration = GetConfiguration(); string connectionString = configuration.GetConnectionString("AWSMAINDB"); //Open connection using (MySqlConnection conn = new MySqlConnection(connectionString)) { conn.Open(); //Confirm user is authorized to take this course MySqlCommand cmdUserAuth = new MySqlCommand("SELECT COUNT(*) FROM loginTable INNER JOIN assignedCoursesTable ON assignedCoursesTable.assignedToID = @username WHERE username = @username AND userspassword = @password AND assignedCoursesTable.courseID = @courseID", conn); cmdUserAuth.Parameters.Add("@username", MySqlDbType.VarChar).Value = username; cmdUserAuth.Parameters.Add("@password", MySqlDbType.VarChar).Value = password; cmdUserAuth.Parameters.Add("@courseID", MySqlDbType.VarChar).Value = courseID; if (int.Parse(cmdUserAuth.ExecuteScalar().ToString()) > 0) { MySqlCommand cmd = new MySqlCommand("SELECT * FROM coursesTestQuestionsTable WHERE testID = @courseID", conn); cmd.Parameters.Add("@courseID", MySqlDbType.VarChar).Value = courseID; MySqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { //Populate testModel with test questions testModel.Add(new TakeATestModel() { testID = reader["testID"].ToString(), questionNumber = int.Parse(reader["questionNumber"].ToString()), question = reader["question"].ToString(), answerOption1 = reader["answerOption1"].ToString(), answerOption2 = reader["answerOption2"].ToString(), answerOption3 = reader["answerOption3"].ToString(), answerOption4 = reader["answerOption4"].ToString(), isAnswerOption1Correct = reader["isAnswerOption1Correct"].ToString(), isAnswerOption2Correct = reader["isAnswerOption2Correct"].ToString(), isAnswerOption3Correct = reader["isAnswerOption3Correct"].ToString(), isAnswerOption4Correct = reader["isAnswerOption4Correct"].ToString() }); } return(testModel); } else { return(null); } } } catch (Exception e) { EmailErrors emailerrors = new EmailErrors(); emailerrors.autoEmailDeveloperAboutIssue("takeATestFuctions.cs", "getTestQuestions", e.ToString()); return(null); } }
static Errors() { AccountErrors = new AccountErrors(); MaintenanceErrors = new MaintenanceErrors(); DatabaseErrors = new DatabaseErrors(); UserCreatorErrors = new UserCreatorErrors(); AuthErrors = new AuthErrors(); EmailErrors = new EmailErrors(); LogErrors = new LogErrors(); }
//-------------------------------Check if user has admin priveleges ---------------------------- public AdminModel checkAdminPrivileges(string username, string password) { try { //variable AdminModel adminmodel = new AdminModel(); //Get Connection String var configuration = GetConfiguration(); string connectionString = configuration.GetConnectionString("AWSMAINDB"); //Open Sql connection using (MySqlConnection conn = new MySqlConnection(connectionString)) { conn.Open(); MySqlCommand cmd = new MySqlCommand("SELECT * FROM loginTable WHERE username = @username AND usersPassword = @password", conn); cmd.Parameters.Add("@username", MySqlDbType.VarChar).Value = username; cmd.Parameters.Add("@password", MySqlDbType.VarChar).Value = password; MySqlDataReader reader = cmd.ExecuteReader(); //Check users admin privileges while (reader.Read()) { //Check access if (reader["adminPrivileges"].ToString() == "true") { adminmodel.doesUserHaveAdminPrivileges = true; } else { adminmodel.doesUserHaveAdminPrivileges = false; } //Check if requested access if (reader["didUserRequestPrivileges"].ToString() == "true") { adminmodel.didUserRequestAdminPrivileges = true; } else { adminmodel.didUserRequestAdminPrivileges = false; } } return(adminmodel); } } catch (Exception e) { //If error email the developer EmailErrors emailerrors = new EmailErrors(); emailerrors.autoEmailDeveloperAboutIssue("Admin Functions", "checkAdminPrileges", e.ToString()); return(null); } }
//----------------------------Populate admin model------------------------------- public AdminModel populateAdminModel(string username, string password) { try { //Variables AdminModel adminmodel = new AdminModel(); List <string> usernames = new List <string>(); List <string> coursenames = new List <string>(); //Get Connection String var configuration = GetConfiguration(); string connectionString = configuration.GetConnectionString("AWSMAINDB"); //Open Sql connection using (MySqlConnection conn = new MySqlConnection(connectionString)) { conn.Open(); MySqlCommand cmd = new MySqlCommand("SELECT * FROM loginTable ORDER BY username ASC", conn); MySqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { usernames.Add(reader["username"].ToString()); } reader.Close(); MySqlCommand cmd2 = new MySqlCommand("SELECT * FROM coursesTable", conn); reader = cmd2.ExecuteReader(); while (reader.Read()) { coursenames.Add(reader["courseTitle"].ToString()); } } //Check admin priv with existing function adminmodel.didUserRequestAdminPrivileges = checkAdminPrivileges(username, password).didUserRequestAdminPrivileges; adminmodel.doesUserHaveAdminPrivileges = checkAdminPrivileges(username, password).doesUserHaveAdminPrivileges; //populate model with existing lists adminmodel.allUsernames = usernames; adminmodel.allCourseNames = coursenames; //Return model return(adminmodel); } catch (Exception e) { EmailErrors emailErrors = new EmailErrors(); emailErrors.autoEmailDeveloperAboutIssue("adminFunctions.cs", "populateAdminModel", e.ToString()); return(null); } }
//--------------------------Retrieve users report----------------------- public List <RetrieveUsersReportModel> retrieveUsersReport(string username) { //Get Connection String var configuration = GetConfiguration(); string connectionString = configuration.GetConnectionString("AWSMAINDB"); //Declare variables List <RetrieveUsersReportModel> retrieveUsersReportModel = new List <RetrieveUsersReportModel>(); //Open Sql connection using (MySqlConnection conn = new MySqlConnection(connectionString)) { try { conn.Open(); MySqlCommand cmd = new MySqlCommand("SELECT * FROM testScoringTable WHERE LOWER(assignedTo) = @assignedTo", conn); cmd.Parameters.Add("@assignedTo", MySqlDbType.VarChar).Value = username.ToLower(); MySqlDataReader reader = cmd.ExecuteReader(); //Populate variables while (reader.Read()) { retrieveUsersReportModel.Add(new RetrieveUsersReportModel { courseName = reader["courseName"].ToString(), assignedBy = reader["assignedBy"].ToString(), dateAssigned = reader["dateAssigned"].ToString(), dateTaken = reader["dateTaken"].ToString(), grade = (int.Parse(reader["grade"].ToString())) }); } return(retrieveUsersReportModel); } catch (Exception e) { EmailErrors error = new EmailErrors(); error.autoEmailDeveloperAboutIssue("adminFunctions.cs", "retrieveUserReports", e.ToString()); return(null); } } }
//-------------------------------Get current assigned courses---------------------------- public List <getAssignedCoursesModel> getCurrentAssignedCourses(string username) { try { //Declare variable List <getAssignedCoursesModel> getAssignedCourses = new List <getAssignedCoursesModel>(); //Get Connection String var configuration = GetConfiguration(); string connectionString = configuration.GetConnectionString("AWSMAINDB"); //Get data using (MySqlConnection conn = new MySqlConnection(connectionString)) { conn.Open(); MySqlCommand cmd = new MySqlCommand("SELECT * FROM assignedCoursesTable WHERE assignedToID = @username", conn); cmd.Parameters.Add("@username", MySqlDbType.VarChar).Value = username; MySqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { getAssignedCourses.Add(new getAssignedCoursesModel { assignedByID = reader["assignedByID"].ToString(), assignedtoID = reader["assignedToID"].ToString(), courseID = reader["courseID"].ToString() }); } return(getAssignedCourses); } } catch (Exception e) { EmailErrors errors = new EmailErrors(); errors.autoEmailDeveloperAboutIssue("GetAssignedCourses.cs", "getCurrentAssignedCourses", e.ToString()); return(null); } }
//---------------------Populate model with course content data-------------------------- public Models.CourseContentModel populateCourseContentModel(string username, string password, string courseID) { try { //Get Connection String var configuration = GetConfiguration(); string connectionString = configuration.GetConnectionString("AWSMAINDB"); //Declare variables Models.CourseContentModel coursecontentmodel = new Models.CourseContentModel(); coursecontentmodel.videoLinks = new List <string>(); coursecontentmodel.webAndPDFLinks = new List <string>(); //Open connection using (MySqlConnection conn = new MySqlConnection(connectionString)) { conn.Open(); //Confirm user is authorized to take this course MySqlCommand cmdUserAuth = new MySqlCommand("SELECT COUNT(*) FROM loginTable INNER JOIN assignedCoursesTable ON assignedCoursesTable.assignedToID = @username WHERE username = @username AND userspassword = @password AND assignedCoursesTable.courseID = @courseID", conn); cmdUserAuth.Parameters.Add("@username", MySqlDbType.VarChar).Value = username; cmdUserAuth.Parameters.Add("@password", MySqlDbType.VarChar).Value = password; cmdUserAuth.Parameters.Add("@courseID", MySqlDbType.VarChar).Value = courseID; if (int.Parse(cmdUserAuth.ExecuteScalar().ToString()) > 0) { //Get all course content MySqlCommand cmd = new MySqlCommand("SELECT * FROM coursesContentTable INNER JOIN coursesTable ON coursesContentTable.testID = coursesTable.courseTitle WHERE coursesContentTable.testID = @courseID", conn); cmd.Parameters.Add("@courseID", MySqlDbType.VarChar).Value = courseID; MySqlDataReader reader = cmd.ExecuteReader(); //Loop through all course content in course. Assign to model while (reader.Read()) { coursecontentmodel.courseTitle = reader["testID"].ToString(); coursecontentmodel.difficultyRating = reader["difficultyRating"].ToString(); if (reader["linkType"].ToString() == "Video") { coursecontentmodel.videoLinks.Add(reader["linkAddress"].ToString()); } else { coursecontentmodel.webAndPDFLinks.Add(reader["linkAddress"].ToString()); } coursecontentmodel.notes = reader["notes"].ToString(); } return(coursecontentmodel); } //If user is not assigned to course else { return(null); } } } catch (Exception e) { EmailErrors errors = new EmailErrors(); errors.autoEmailDeveloperAboutIssue("courseContent.cs", "populateCourseContentModel", e.ToString()); return(null); } }
//---------------------------Assign Courses--------------------------------------- public bool assignCourses(assignCourseModel[] assigncoursesmodel, string adminFirstname, string adminLastname) { try { //Get Connection String var configuration = GetConfiguration(); string connectionString = configuration.GetConnectionString("AWSMAINDB"); //create variables List <string> users = new List <string>(); List <string> courses = new List <string>(); //Populate variables foreach (assignCourseModel objectModel in assigncoursesmodel) { if (objectModel.user != null) { users.Add(objectModel.user); } if (objectModel.course != null) { courses.Add(objectModel.course); } } //Push data to database foreach (string user in users) { foreach (string course in courses) { //Create security verification variable. bool isOkToAssignCourse = true; using (MySqlConnection conn = new MySqlConnection(connectionString)) { conn.Open(); //Verify user exists MySqlCommand cmd1 = new MySqlCommand("SELECT COUNT(*) FROM loginTable WHERE username = @username", conn); cmd1.Parameters.Add("@username", MySqlDbType.VarChar).Value = user; if (int.Parse(cmd1.ExecuteScalar().ToString()) != 1) { isOkToAssignCourse = false; } //Verify course exists MySqlCommand cmd2 = new MySqlCommand("SELECT COUNT(*) FROM coursesTable WHERE courseTitle = @courseTitle", conn); cmd2.Parameters.Add("@courseTitle", MySqlDbType.VarChar).Value = course; if (int.Parse(cmd2.ExecuteScalar().ToString()) != 1) { isOkToAssignCourse = false; } //Check user isn't already assigned to course MySqlCommand cmd3 = new MySqlCommand("SELECT COUNT(*) FROM assignedCoursesTable WHERE assignedToID = @assignedToID AND courseID = @courseID", conn); cmd3.Parameters.Add("@assignedToID", MySqlDbType.VarChar).Value = user; cmd3.Parameters.Add("@courseID", MySqlDbType.VarChar).Value = course; if (int.Parse(cmd3.ExecuteScalar().ToString()) > 0) { isOkToAssignCourse = false; } //If all verification checks pass assign course to user if (isOkToAssignCourse == true) { MySqlCommand cmd4 = new MySqlCommand("INSERT INTO assignedCoursesTable (assignedByID, assignedToID, courseID) VALUES (@assignedByID, @assignedToID, @courseID)", conn); cmd4.Parameters.Add("@assignedByID", MySqlDbType.VarChar).Value = adminFirstname + " " + adminLastname; cmd4.Parameters.Add("@assignedToID", MySqlDbType.VarChar).Value = user; cmd4.Parameters.Add("@courseID", MySqlDbType.VarChar).Value = course; cmd4.ExecuteNonQuery(); } } } } return(true); } catch (Exception e) { EmailErrors emailerrors = new EmailErrors(); emailerrors.autoEmailDeveloperAboutIssue("adminFunction.cs", "assignCourses", e.ToString()); return(false); } }
//---------------------------Submit New Course--------------------------------------- public bool submitNewCourse(createACourseModel[] createACourseModel) { //Create variables List <string> links = new List <string>(); List <string> linkTypes = new List <string>(); List <string> questions = new List <string>(); List <string> option1 = new List <string>(); List <string> option2 = new List <string>(); List <string> option3 = new List <string>(); List <string> option4 = new List <string>(); List <string> isOption1Correct = new List <string>(); List <string> isOption2Correct = new List <string>(); List <string> isOption3Correct = new List <string>(); List <string> isOption4Correct = new List <string>(); //Populate Links foreach (createACourseModel courseModel in createACourseModel) { if (courseModel.link != null) { links.Add(courseModel.link); } } //Populate Link Types foreach (createACourseModel courseModel in createACourseModel) { if (courseModel.linkType != null) { linkTypes.Add(courseModel.linkType); } } //Populate question data foreach (createACourseModel courseModel in createACourseModel) { if (courseModel.question != null) { questions.Add(courseModel.question); option1.Add(courseModel.option1); option2.Add(courseModel.option2); option3.Add(courseModel.option3); option4.Add(courseModel.option4); isOption1Correct.Add(courseModel.isOptionCorrectOrIncorrect1); isOption2Correct.Add(courseModel.isOptionCorrectOrIncorrect2); isOption3Correct.Add(courseModel.isOptionCorrectOrIncorrect3); isOption4Correct.Add(courseModel.isOptionCorrectOrIncorrect4); } } try { //Get Connection String var configuration = GetConfiguration(); string connectionString = configuration.GetConnectionString("AWSMAINDB"); //Insert course name & difficulty rating using (MySqlConnection conn = new MySqlConnection(connectionString)) { conn.Open(); MySqlCommand cmd = new MySqlCommand("INSERT INTO coursesTable (courseTitle, difficultyRating, notes) VALUES (@courseTitle,@difficultyRating, @notes) ", conn); cmd.Parameters.Add("@difficultyRating", MySqlDbType.VarChar).Value = createACourseModel[1].difficultyRating; cmd.Parameters.Add("@courseTitle", MySqlDbType.VarChar).Value = createACourseModel[2].courseName; cmd.Parameters.Add("@notes", MySqlDbType.VarChar).Value = createACourseModel[3].notes; cmd.ExecuteNonQuery(); } //Insert Links int iterator = 0; foreach (string link in links) { using (MySqlConnection conn = new MySqlConnection(connectionString)) { conn.Open(); MySqlCommand cmd = new MySqlCommand("INSERT INTO coursesContentTable (testID, linkAddress, linkType) VALUES (@testID ,@linkAddress, @linkType) ", conn); cmd.Parameters.Add("@testID", MySqlDbType.VarChar).Value = createACourseModel[2].courseName; cmd.Parameters.Add("@linkAddress", MySqlDbType.VarChar).Value = link; cmd.Parameters.Add("@linkType", MySqlDbType.VarChar).Value = linkTypes[iterator]; cmd.ExecuteNonQuery(); iterator++; } } //Insert Questions iterator = 0; foreach (string question in questions) { using (MySqlConnection conn = new MySqlConnection(connectionString)) { conn.Open(); MySqlCommand cmd = new MySqlCommand("INSERT INTO coursesTestQuestionsTable (testID, questionNumber, question, answerOption1, answerOption2, answerOption3, answerOption4, isAnswerOption1Correct, isAnswerOption2Correct, isAnswerOption3Correct, isAnswerOption4Correct) VALUES (@testID ,@questionNumber, @question, @answerOption1, @answerOption2, @answerOption3, @answerOption4, @isAnswerOption1Correct, @isAnswerOption2Correct, @isAnswerOption3Correct, @isAnswerOption4Correct) ", conn); cmd.Parameters.Add("@testID", MySqlDbType.VarChar).Value = createACourseModel[2].courseName; cmd.Parameters.Add("@questionNumber", MySqlDbType.VarChar).Value = iterator + 1; cmd.Parameters.Add("@question", MySqlDbType.VarChar).Value = question; cmd.Parameters.Add("@answerOption1", MySqlDbType.VarChar).Value = option1[iterator]; cmd.Parameters.Add("@answerOption2", MySqlDbType.VarChar).Value = option2[iterator]; cmd.Parameters.Add("@answerOption3", MySqlDbType.VarChar).Value = option3[iterator]; cmd.Parameters.Add("@answerOption4", MySqlDbType.VarChar).Value = option4[iterator]; cmd.Parameters.Add("@isAnswerOption1Correct", MySqlDbType.VarChar).Value = isOption1Correct[iterator]; cmd.Parameters.Add("@isAnswerOption2Correct", MySqlDbType.VarChar).Value = isOption2Correct[iterator]; cmd.Parameters.Add("@isAnswerOption3Correct", MySqlDbType.VarChar).Value = isOption3Correct[iterator]; cmd.Parameters.Add("@isAnswerOption4Correct", MySqlDbType.VarChar).Value = isOption4Correct[iterator]; cmd.ExecuteNonQuery(); iterator++; } } return(true); } catch (Exception e) { EmailErrors emailerrors = new EmailErrors(); emailerrors.autoEmailDeveloperAboutIssue("adminFunctions.cs", "submitNewCourse", e.ToString()); return(false); } }
//-------------------------------Grade users test---------------------------------------------- public string gradeTest(string username, string password, string courseID, string[] answers) { try { //Declare variables double totalQuestions = 0; double correctAnswers = 0; int i = 0; bool wasAnswerCorrect = false; DateTime assigedCourseDate = new DateTime(); string assignedBy = ""; int totalScore = 0; //Get Connection String var configuration = GetConfiguration(); string connectionString = configuration.GetConnectionString("AWSMAINDB"); //Open connection using (MySqlConnection conn = new MySqlConnection(connectionString)) { conn.Open(); //Confirm user is authorized to take this course MySqlCommand cmdUserAuth = new MySqlCommand("SELECT COUNT(*) FROM loginTable INNER JOIN assignedCoursesTable ON assignedCoursesTable.assignedToID = @username WHERE username = @username AND userspassword = @password AND assignedCoursesTable.courseID = @courseID", conn); cmdUserAuth.Parameters.Add("@username", MySqlDbType.VarChar).Value = username; cmdUserAuth.Parameters.Add("@password", MySqlDbType.VarChar).Value = password; cmdUserAuth.Parameters.Add("@courseID", MySqlDbType.VarChar).Value = courseID; if (int.Parse(cmdUserAuth.ExecuteScalar().ToString()) > 0) { MySqlCommand cmd = new MySqlCommand("SELECT * FROM coursesTestQuestionsTable WHERE testID = @testID", conn); cmd.Parameters.Add("@testID", MySqlDbType.VarChar).Value = courseID; MySqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { //Check if answer is correct wasAnswerCorrect = false; //Check if question is correct out of any 4 options if (answers[i] == reader["answerOption1"].ToString() && reader["isAnswerOption1Correct"].ToString() == "Correct") { wasAnswerCorrect = true; } else if (answers[i] == reader["answerOption2"].ToString() && reader["isAnswerOption2Correct"].ToString() == "Correct") { wasAnswerCorrect = true; } else if (answers[i] == reader["answerOption3"].ToString() && reader["isAnswerOption3Correct"].ToString() == "Correct") { wasAnswerCorrect = true; } else if (answers[i] == reader["answerOption4"].ToString() && reader["isAnswerOption4Correct"].ToString() == "Correct") { wasAnswerCorrect = true; } //If answer was correct add +1 to correctAnswers if (wasAnswerCorrect == true) { correctAnswers += 1; } totalQuestions++; i++; } reader.Close(); //Get course assign data MySqlCommand getAssignDataCmd = new MySqlCommand("SELECT * FROM assignedCoursesTable WHERE assignedToID = @username AND courseID = @courseID", conn); getAssignDataCmd.Parameters.Add("@username", MySqlDbType.VarChar).Value = username; getAssignDataCmd.Parameters.Add("@courseID", MySqlDbType.VarChar).Value = courseID; MySqlDataReader assignedCourseDateReader = getAssignDataCmd.ExecuteReader(); while (assignedCourseDateReader.Read()) { assigedCourseDate = DateTime.Parse(assignedCourseDateReader["queryCreationDate"].ToString()); assignedBy = assignedCourseDateReader["assignedByID"].ToString(); } assignedCourseDateReader.Close(); //Submit score to DB double score = (correctAnswers / totalQuestions) * 100; totalScore = int.Parse(Math.Round(score).ToString()); MySqlCommand cmdInsertIntoDB = new MySqlCommand("INSERT INTO testScoringTable (courseName, assignedBy, dateAssigned, grade, assignedTo) VALUES (@courseName, @assignedBy, @dateAssigned, @grade, @assignedTo)", conn); cmdInsertIntoDB.Parameters.Add("@courseName", MySqlDbType.VarChar).Value = courseID; cmdInsertIntoDB.Parameters.Add("@assignedBy", MySqlDbType.VarChar).Value = assignedBy; cmdInsertIntoDB.Parameters.Add("@dateAssigned", MySqlDbType.DateTime).Value = assigedCourseDate; cmdInsertIntoDB.Parameters.Add("@grade", MySqlDbType.VarChar).Value = totalScore; cmdInsertIntoDB.Parameters.Add("@assignedTo", MySqlDbType.VarChar).Value = username; cmdInsertIntoDB.ExecuteNonQuery(); //Delete from assigned courses table MySqlCommand deleteCommand = new MySqlCommand("DELETE FROM assignedCoursesTable WHERE assignedToID = @assignedToID AND courseID = @courseID", conn); deleteCommand.Parameters.Add("@assignedToID", MySqlDbType.VarChar).Value = username; deleteCommand.Parameters.Add("@courseID", MySqlDbType.VarChar).Value = courseID; deleteCommand.ExecuteNonQuery(); //Return true return("true"); } else { return("Not authorized to take course" + courseID); } } } catch (Exception e) { EmailErrors emailerrors = new EmailErrors(); emailerrors.autoEmailDeveloperAboutIssue("takeATestFunctions", "gradeTest", e.ToString()); return("ERROR CATCH"); } }