//Update the status of an evaluator public bool updateAcceptanceStatus(EvaluatorQuery e) { try { using (conferenceadminContext context = new conferenceadminContext()) { var updateUser = (from s in context.users where s.userID == e.userID select s).FirstOrDefault(); if (updateUser != null) { if (e.acceptanceStatus == "Rejected") { //Remove from claim table var updateClaim = (from s in context.claims where s.userID == e.userID && s.privilege.privilegestType == "Evaluator" select s).FirstOrDefault(); if (updateClaim != null) { updateClaim.deleted = true; } //Remove from evaluator table var updateEvaluator = (from s in context.evaluators where s.userID == e.userID select s).FirstOrDefault(); if (updateEvaluator != null) { //list of the the submissions assigned to the evaluator with ID evaluatorID List<evaluatiorsubmission> evaluatorAssignments = context.evaluatiorsubmissions.Where(c => c.evaluatorID == updateEvaluator.evaluatorsID && c.deleted == false).ToList(); foreach (var assignment in evaluatorAssignments) { if (assignment.evaluationsubmitteds.FirstOrDefault() == null)//if no evaluation was submitted then delete the assignment { assignment.deleted = true; } } updateEvaluator.deleted = true; } //Update status updateUser.evaluatorStatus = e.acceptanceStatus; //Send reject email try { sendRejectConfirmation(updateUser.firstName, updateUser.membership.email, "Rejected"); } catch (Exception ex) { Console.Write("AdminManager.sendRejectEvaluatorEmail error " + ex); return false; } } else if (e.acceptanceStatus == "Accepted") { //Give evaluator privilege to user this.addEvaluator(updateUser.membership.email); //Send confirmation email try { sendAcceptConfirmation(updateUser.firstName, updateUser.membership.email, "Accepted"); } catch (Exception ex) { Console.Write("AdminManager.sendRejectEvaluatorEmail error " + ex); return false; } } context.SaveChanges(); return true; } else { return false; } } } catch (Exception ex) { Console.Write("EvaluatorManager.updateAcceptanceStatus error " + ex); return false; } }
//Give an evaluator the "Accepted" status public EvaluatorQuery addEvaluator(String email) { try { using (conferenceadminContext context = new conferenceadminContext()) { var e = (from u in context.users where u.membership.email == email select u).FirstOrDefault(); if (e != null) { //Check if user has been an evaluator before var check = (from s in context.evaluators where s.userID == e.userID select s).FirstOrDefault(); if (check != null) { //Update status to Accepted check.deleted = false; var claims = (from s in context.claims where s.userID == e.userID && s.privilege.privilegestType == "Evaluator" select s).FirstOrDefault(); if (claims != null) { claims.deleted = false; } else { //Add claim claim newClaim = new claim(); newClaim.privilegesID = 4; newClaim.deleted = false; newClaim.userID = e.userID; context.claims.Add(newClaim); } e.evaluatorStatus = "Accepted"; } else { //Change status in table user EvaluatorQuery newEvaluator = new EvaluatorQuery(); newEvaluator.userID = e.userID; newEvaluator.firstName = e.firstName; newEvaluator.lastName = e.lastName; newEvaluator.email = email; newEvaluator.acceptanceStatus = e.evaluatorStatus; //Add claim claim newClaim = new claim(); newClaim.privilegesID = 4; newClaim.deleted = false; newClaim.userID = e.userID; context.claims.Add(newClaim); //Add evaluator evaluator newEva = new evaluator(); newEva.userID = e.userID; newEva.deleted = false; context.evaluators.Add(newEva); e.evaluatorStatus = "Accepted"; context.SaveChanges(); return newEvaluator; } context.SaveChanges(); } return null; } } catch (Exception ex) { Console.Write("EvaluatorManager.addEvaluator error " + ex); return null; } }
//Removes administrator privileges to the user with the specified userID public bool deleteAdministrator(AdministratorQuery delAdmin) { try { using (conferenceadminContext context = new conferenceadminContext()) { //Find user var admin = (from s in context.claims where s.userID == delAdmin.userID && s.privilegesID == delAdmin.privilegeID && s.deleted != true select s).FirstOrDefault(); if (admin != null) { admin.deleted = true; } context.SaveChanges(); //Remove evaluator privileges if the user was an administrator or committee evaluator. if (delAdmin.privilegeID != 2) { EvaluatorQuery evaluator = new EvaluatorQuery(); evaluator.userID = delAdmin.userID; evaluator.acceptanceStatus = "Rejected"; EvaluatorManager manager = new EvaluatorManager(); manager.updateAcceptanceStatus(evaluator); } return true; } } catch (Exception ex) { Console.Write("AdminManager.deleteAdministrator error " + ex); return false; } }