/* [Randy] Add new registration entry */ public string addRegistration(registration reg, user user, membership mem) { /*int type, string firstname, string lastname, string affiliationName, bool registrationstatus, bool hasapplied, bool acceptancestatus*/ try { using (conferenceadminContext context = new conferenceadminContext()) { address address = new address(); context.addresses.Add(address); //encryption var userPassword = mem.password; mem.password = Security.GetSHA1HashData(mem.password); //end encryption mem.emailConfirmation = true; mem.deleted = false; context.memberships.Add(mem); context.SaveChanges(); user.addressID = address.addressID; user.membershipID = mem.membershipID; user.registrationStatus = "Accepted"; user.hasApplied = true; user.acceptanceStatus = "Accepted"; user.title = ""; user.phone = ""; user.userFax = ""; user.deleted = false; context.users.Add(user); context.SaveChanges(); reg.userID = user.userID; reg.paymentID = 1; reg.byAdmin = true; reg.deleted = false; context.registrations.Add(reg); context.SaveChanges(); try { sendEmailConfirmation(mem.email, userPassword); } catch (Exception ex) { Console.Write("AdminManager.ConfirmationEmail error " + ex); return null; } return reg.registrationID + "," + user.userTypeID; } } catch (Exception ex) { Console.Write("AdminManager.addRegistration error " + ex); return null; } }
public templateQuery addTemplate(templateQuery t) { authorizationtemplate template = new authorizationtemplate(); template.authorizationID = t.authorizationID; template.authorizationName = t.authorizationName; template.authorizationDocument = t.authorizationDocument; template.deleted = false; try { using (conferenceadminContext context = new conferenceadminContext()) { template.deleted = false; context.authorizationtemplates.Add(template); context.SaveChanges(); t.authorizationID = template.authorizationID; return t; } } catch (Exception ex) { Console.Write("AdminManager.addTemplate error " + ex); return null; } }
public ComplimentaryPagingQuery addKeysTo(addComplementary obj) { try { using (conferenceadminContext context = new conferenceadminContext()) { for (int i = 0; i < obj.quantity; i++) { complementarykey c = new complementarykey(); c.sponsorID2 = obj.sponsorID; c.isUsed = false; c.deleted = false; c.key = "CCWIC-" + obj.company + "-" + GenerateComplementary(30); context.complementarykeys.Add(c); } context.SaveChanges(); ComplimentaryPagingQuery page = new ComplimentaryPagingQuery(); page.index = 0; page.sponsorID = obj.sponsorID; //return getSponsorComplentaryList(obj.sponsorID); return getSponsorComplementaryList(page); } } catch (Exception ex) { Console.Write("SponsorManager.CoplementarykeyGenerator error " + ex); return null; } }
//Add a new topic: returns the new topicID public topiccategory addTopic(topiccategory s) { try { using (conferenceadminContext context = new conferenceadminContext()) { var checkTopic = (from t in context.topiccategories where t.name == s.name && t.deleted == true select t).FirstOrDefault(); //check if there has been topics with the specified name if (checkTopic != null) { //Recover topic and set deleted attribute back to false checkTopic.deleted = false; s.topiccategoryID = checkTopic.topiccategoryID; } else { s.deleted = false; //Add new topic context.topiccategories.Add(s); } context.SaveChanges(); return s; } } catch (Exception ex) { Console.Write("AdminManager.addTopic error " + ex); return s; } }
public bool deleteTemplate(int id) { try { using (conferenceadminContext context = new conferenceadminContext()) { //verificar que se quiere se de disable a todos los evaluation q los tiene o que simplemente no se pueda escoger desde la pantalla //donde se asignan los evaluation pero lo q ya lo tienen se queden con las evaluaciones. var template = (from temp in context.authorizationtemplates where temp.authorizationID == id select temp).FirstOrDefault(); template.deleted = true; context.SaveChanges(); return true; } } catch (Exception ex) { Console.Write("AdminManager.deleteTemplate error " + ex); return false; } }
//This method is reponsible to create a paymentBill with the transaction ID and status completed == false public void createPaymentBill(PaymentInfo info, string transactionID) { try { using (conferenceadminContext context = new conferenceadminContext()) { double quantity = info.amount * 100; paymentbill bill = new paymentbill(); bill.AmountPaid = info.amount; bill.paymentID = info.paymentID; bill.completed = false; bill.transactionid = transactionID; bill.quantity = (int)quantity; bill.deleted = false; bill.date = DateTime.Now; bill.telephone = info.phone; context.paymentbills.Add(bill); context.SaveChanges(); } } catch (Exception ex) { Console.Write("PaymentManager.makePayment error " + ex); } }
/* [Randy] Register as a complementary user without paying */ public bool complementaryPayment(UserInfo user, string key) { try { using (conferenceadminContext context = new conferenceadminContext()) { payment payment = new payment { paymentTypeID = 2, deleted = false, creationDate = DateTime.Now.Date }; context.payments.Add(payment); context.SaveChanges(); registration registration = new registration { userID = user.userID, paymentID = payment.paymentID, date1 = user.date1, date2 = user.date2, date3 = user.date3, byAdmin = false, deleted = false, note = user.notes }; user saveUser = context.users.Where(u => u.userID == user.userID).FirstOrDefault(); saveUser.registrationStatus = "Accepted"; complementarykey complementaryKey = context.complementarykeys.Where(k => k.key == key).FirstOrDefault(); complementaryKey.isUsed = true; paymentcomplementary complementaryPay = new paymentcomplementary { paymentID = payment.paymentID, deleted = false, complementaryKeyID = complementaryKey.complementarykeyID }; context.registrations.Add(registration); context.paymentcomplementaries.Add(complementaryPay); context.SaveChanges(); return true; } } catch (Exception ex) { Console.Write("ProfileAuthorizationManager.complementaryPaymentError error " + ex); return false; } }
/* [Randy] Delete a specific authorization document */ public bool deleteDocument(Authorization auth) { try { using (conferenceadminContext context = new conferenceadminContext()) { authorizationsubmitted authorization = context.authorizationsubmitteds.Where(a => a.authorizationSubmittedID == auth.authorizationID).FirstOrDefault(); authorization.deleted = true; context.SaveChanges(); return true; } } catch (Exception ex) { Console.Write("ProfileAuthorizationManager.deleteDocument error " + ex); return false; } }
/* [Randy] Make application to attend the conference */ public bool apply(UserInfo user) { try { using (conferenceadminContext context = new conferenceadminContext()) { user newUser = context.users.Where(u => u.userID == user.userID).FirstOrDefault(); newUser.hasApplied = true; if (newUser.userTypeID == 1) context.minors.Where(m => m.userID == user.userID).FirstOrDefault().authorizationStatus = true; context.SaveChanges(); return true; } } catch (Exception ex) { Console.Write("ProfileAuthorizationManager.UserPayment error " + ex); return false; } }
//Delete topic with the specified topicID public bool deleteTopic(int id) { try { using (conferenceadminContext context = new conferenceadminContext()) { //Get topic to be removed var topic = (from s in context.topiccategories where s.topiccategoryID == id select s).FirstOrDefault(); if (topic != null) { //Check the topic does not have submissions assigned var submissions = (from s in context.submissions where s.topicID == id select s).Count(); if (submissions == 0) { //Topic is deleted if there are no submissions under the category. topic.deleted = true; context.SaveChanges(); return true; } } return false; } } catch (Exception ex) { Console.Write("AdminManager.deleteTopic error " + ex); return false; } }
public bool deleteSponsor(long x) { try { using (conferenceadminContext context = new conferenceadminContext()) { var sponsor = (from s in context.sponsor2 where s.sponsorID == x select s).FirstOrDefault(); if (sponsor != null) { sponsor.user.membership.deleted = true; sponsor.user.deleted = true; sponsor.deleted = true; context.SaveChanges(); } return true; } } catch (Exception ex) { Console.Write("SponsorManager.deleteSponsor error " + ex); return false; } }
public ComplimentaryPagingQuery deleteComplementarySponsor(long x) { try { using (conferenceadminContext context = new conferenceadminContext()) { //delete si nadie ha pagado con el hasta este momento. context.complementarykeys .Where(s => s.sponsorID2 == x && s.isUsed == false) .ToList().ForEach(s => { s.deleted = true; }); context.SaveChanges(); ComplimentaryPagingQuery page = new ComplimentaryPagingQuery(); page.index = 0; page.sponsorID = x; return getSponsorComplementaryList(page); } } catch (Exception ex) { Console.Write("SponsorManager.Deletekey error " + ex); return null; } }
public bool deleteComplementary(long x) { try { using (conferenceadminContext context = new conferenceadminContext()) { //delete si nadie ha pagado con el hasta este momento. var key = (from s in context.complementarykeys where s.complementarykeyID == x && s.isUsed == false select s).FirstOrDefault(); key.deleted = true; context.SaveChanges(); return true; } } catch (Exception ex) { Console.Write("SponsorManager.Deletekey error " + ex); return false; } }
//Jaimeiris - This adds the submission when it is added by an administrator public Submission addSubmissionByAdmin(usersubmission usersubTA, submission submissionToAdd, panel pannelToAdd, workshop workshopToAdd) { try { using (conferenceadminContext context = new conferenceadminContext()) { submission sub = new submission(); //for all types of submissions //table submission sub.topicID = submissionToAdd.topicID; sub.submissionTypeID = submissionToAdd.submissionTypeID; sub.submissionAbstract = submissionToAdd.submissionAbstract; sub.title = submissionToAdd.title; sub.status = "Pending"; sub.creationDate = DateTime.Now; sub.deleted = false; sub.byAdmin = true; context.submissions.Add(sub); context.SaveChanges(); //table usersubmission long submissionID = sub.submissionID; usersubmission usersub = new usersubmission(); usersub.userID = usersubTA.userID; usersub.initialSubmissionID = submissionID; usersub.allowFinalVersion = false; usersub.deleted = false; usersub.finalSubmissionID = null; context.usersubmission.Add(usersub); context.SaveChanges(); //automatically apply user user user = context.users.Where(c => c.userID == usersubTA.userID).FirstOrDefault(); user.hasApplied = true; context.SaveChanges(); /*/table documents submitted if (submissionToAdd.submissionTypeID != 4) { documentssubmitted subDocs = new documentssubmitted(); foreach (var doc in submissionToAdd.documentssubmitteds) { subDocs.submissionID = submissionID; subDocs.documentName = doc.documentName; subDocs.document = doc.document; subDocs.deleted = false; context.documentssubmitteds.Add(subDocs); context.SaveChanges(); } }*/ //table pannels if (submissionToAdd.submissionTypeID == 3 && pannelToAdd != null) { panel subPanel = new panel(); subPanel.submissionID = submissionID; subPanel.panelistNames = pannelToAdd.panelistNames; subPanel.plan = pannelToAdd.plan; subPanel.guideQuestion = pannelToAdd.guideQuestion; subPanel.formatDescription = pannelToAdd.formatDescription; subPanel.necessaryEquipment = pannelToAdd.necessaryEquipment; subPanel.deleted = false; context.panels.Add(subPanel); context.SaveChanges(); } //table workshop if (submissionToAdd.submissionTypeID == 5 && workshopToAdd != null) { workshop subWorkshop = new workshop(); subWorkshop.submissionID = submissionID; subWorkshop.duration = workshopToAdd.duration; subWorkshop.delivery = workshopToAdd.delivery; subWorkshop.plan = workshopToAdd.plan; subWorkshop.necessary_equipment = workshopToAdd.necessary_equipment; subWorkshop.deleted = false; context.workshops.Add(subWorkshop); context.SaveChanges(); } Submission addedSub = new Submission { submissionID = submissionID, submissionTypeName = getSubmissionTypeName(sub.submissionTypeID), submissionTypeID = sub.submissionTypeID, submissionTitle = sub.title, topiccategoryID = sub.topicID, status = sub.status, isEvaluated = false, isFinalSubmission = false }; return addedSub; } } catch (Exception ex) { Console.Write("SubmissionManager.addSubmission error " + ex); return null; } }
//This method is call from reentry with the receipt information sent by bank public long storePaymentBill(XMLReceiptInfo receipt) { try { using (conferenceadminContext context = new conferenceadminContext()) { var bill = (from s in context.paymentbills where s.transactionid == receipt.transactionID select s).FirstOrDefault(); if (bill != null) { bill.tandemID = receipt.tandemID; bill.methodOfPayment = receipt.transactionType; bill.batchID = receipt.batchId; bill.email = receipt.email; bill.firstName = receipt.firstName; bill.lastName = receipt.lastName; bill.deleted = false; bill.completed = true; bill.date = DateTime.Now; // bill.telephone = ; context.SaveChanges(); var sponsor1 = bill.payment.sponsors2.FirstOrDefault(); if (sponsor1 != null) { List<paymentbill> bills = sponsor1.payment.paymentbills.ToList(); if (bills.Count() > 0) { double total = 0; foreach (paymentbill b in bills) { if (b.completed) total += b.AmountPaid; } sponsor1.active = true; sponsor1.totalAmount = total; //this loop update sposorType after paymentIs completed var sponsorTypes = context.sponsortypes.ToArray(); if (sponsor1.totalAmount >= sponsorTypes[0].amount) { sponsor1.sponsorType = 1; } else if (sponsorTypes[4].amount >= sponsor1.totalAmount && sponsor1.totalAmount <= sponsorTypes[3].amount - 1) { sponsor1.sponsorType = 5; } else if (sponsor1.totalAmount >= sponsorTypes[3].amount && sponsor1.totalAmount <= sponsorTypes[4].amount - 1) { sponsor1.sponsorType = 4; } else if (sponsor1.totalAmount >= sponsorTypes[2].amount && sponsor1.totalAmount <= sponsorTypes[3].amount - 1) { sponsor1.sponsorType = 3; } else if (sponsor1.totalAmount >= sponsorTypes[1].amount && sponsor1.totalAmount <= sponsorTypes[2].amount - 1) { sponsor1.sponsorType = 2; } } else { sponsor1.active = true; sponsor1.totalAmount = bill.AmountPaid; } context.SaveChanges(); return bill.paymentBillID; } else {//user paymentRegistration var registration = bill.payment.registrations.FirstOrDefault(); user saveUser = context.users.Where(u => u.userID == registration.userID).FirstOrDefault(); saveUser.registrationStatus = "Accepted"; context.SaveChanges(); return bill.paymentBillID; }; } else { return -1; } } } catch (Exception ex) { Console.Write("paymentManger.StorePaymentBillInfo error " + ex); return -1; } }
//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; } }
//Jaimeiris - edits an evaluation that was previously made about a submission //If the evaluator asked for a final version of the submission, the system sends an email to the submitter to add a final version of the submission public bool editEvaluation(evaluationsubmitted evaluation, usersubmission userSubIn) { try { using (conferenceadminContext context = new conferenceadminContext()) { bool isFinalSubmission = context.usersubmission.Where(c => c.finalSubmissionID == userSubIn.initialSubmissionID).FirstOrDefault() == null ? false : (context.usersubmission.Where(d => d.initialSubmissionID == userSubIn.initialSubmissionID).FirstOrDefault() == null ? true : false); usersubmission userSub; evaluationsubmitted dbEvaluation = context.evaluationsubmitteds.Where(c => c.evaluationsubmittedID == evaluation.evaluationsubmittedID).FirstOrDefault(); dbEvaluation.deleted = false; //updates evaluation if (evaluation.evaluationName != null || evaluation.evaluationFile != null) { dbEvaluation.evaluationName = evaluation.evaluationName; dbEvaluation.evaluationFile = evaluation.evaluationFile; } dbEvaluation.score = evaluation.score; dbEvaluation.publicFeedback = evaluation.publicFeedback; dbEvaluation.privateFeedback = evaluation.privateFeedback; var evaluatorSub = dbEvaluation.evaluatiorsubmission; //marks evaluator submission as evaluated if (evaluatorSub != null) { dbEvaluation.evaluatiorsubmission.statusEvaluation = "Evaluated"; } if (isFinalSubmission) { userSub = context.usersubmission.Where(c => c.finalSubmissionID == userSubIn.initialSubmissionID).FirstOrDefault(); } else { userSub = context.usersubmission.Where(c => c.initialSubmissionID == userSubIn.initialSubmissionID).FirstOrDefault(); userSub.allowFinalVersion = userSubIn.allowFinalVersion; } context.SaveChanges(); //sends email if final version was asked if (userSubIn.allowFinalVersion == true) { String email = null; email = (context.usersubmission.Where(c => c.initialSubmissionID == userSubIn.initialSubmissionID).FirstOrDefault() == null ? null : context.usersubmission.Where(c => c.initialSubmissionID == userSubIn.initialSubmissionID).FirstOrDefault().user.membership.email); if (email == null) email = context.usersubmission.Where(c => c.finalSubmissionID == userSubIn.initialSubmissionID).FirstOrDefault() == null ? null : context.usersubmission.Where(c => c.finalSubmissionID == userSubIn.initialSubmissionID).FirstOrDefault().user.membership.email; try { sendFinalVersionAllowedEmail(email, context.submissions.Where(c => c.submissionID == userSubIn.initialSubmissionID).FirstOrDefault().title); } catch (Exception ex) { Console.Write("SubmissionManager.editEvaluation error " + ex); return false; } } return true; } } catch (Exception ex) { Console.Write("SubmissionManager.editEvaluation error " + ex); return false; } }
//Jaimeiris - changes the status of a submission //if submission was accepted the acceptance status of the submitter changes to accepted too. public Submission changeSubmissionStatus(long submissionID, string newStatus) { try { using (conferenceadminContext context = new conferenceadminContext()) { bool changedAcceptanceStatus = false; submission sub = context.submissions.Where(c => c.submissionID == submissionID && c.deleted == false).FirstOrDefault(); sub.status = newStatus; context.SaveChanges(); if (newStatus == "Accepted") { user u = sub.usersubmissions1.Where(c => c.deleted == false).FirstOrDefault() == null ? null : sub.usersubmissions1.Where(c => c.deleted == false).FirstOrDefault().user; if (u == null) u = sub.usersubmissions.Where(c => c.deleted == false).FirstOrDefault() == null ? null : sub.usersubmissions.Where(c => c.deleted == false).FirstOrDefault().user; u.acceptanceStatus = "Accepted"; u.hasApplied = true; context.SaveChanges(); changedAcceptanceStatus = true; } Submission subAltered = new Submission(); subAltered.changedAcceptanceStatus = changedAcceptanceStatus; subAltered.submissionID = sub.submissionID; subAltered.status = newStatus; //send email String email = null; email = sub.usersubmissions1.Where(c => c.deleted == false).FirstOrDefault() == null ? null : sub.usersubmissions1.Where(c => c.deleted == false).FirstOrDefault().user.membership.email; if (email == null) email = sub.usersubmissions.Where(c => c.deleted == false).FirstOrDefault() == null ? null : sub.usersubmissions.Where(c => c.deleted == false).FirstOrDefault().user.membership.email; try { sendSubmissionUpdateEmail(email, sub.title, sub.status, changedAcceptanceStatus); } catch (Exception ex) { Console.Write("SubmissionManager.sendSubmissionUpdateEmail error " + ex); return null; } return subAltered; } } catch (Exception ex) { Console.Write("SubmissionManager.changeSubmissionStatus error " + ex); return null; } }
//Jaimeiris - re-create final submission files, for when editing final submissions public bool createFinalSubmissionFiles(long subID, long prevID, List<long> existingDocsID) { try { using (conferenceadminContext context = new conferenceadminContext()) { //all documents in DB for submission with ID SubmissionID List<documentssubmitted> prevDocuments = context.documentssubmitteds.Where(d => d.submissionID == prevID).ToList<documentssubmitted>(); //list of all documents that are in the DB and will be added to the final submission List<documentssubmitted> existingDocs = prevDocuments.Where(c => existingDocsID.Contains(c.documentssubmittedID)).ToList(); //add docs to the final sub documentssubmitted doc; foreach (var docTBA in existingDocs) { doc = new documentssubmitted(); doc.submissionID = subID; doc.documentName = docTBA.documentName; doc.document = docTBA.document; doc.deleted = false; context.documentssubmitteds.Add(doc); context.SaveChanges(); } } return true; } catch (Exception ex) { Console.Write("SubmissionManager.createFinalSubmissionFiles error " + ex); return false; } }
//Jaimeiris - Assigns a template to a submission public bool assignTemplate(long submissionID, long templateID) { try { using (conferenceadminContext context = new conferenceadminContext()) { //asignarle un evaluation template al submission bool subInTable = context.templatesubmissions.Where(c => c.submissionID == submissionID && c.deleted == false).FirstOrDefault() == null ? false : true; if (subInTable) { templatesubmission ts = context.templatesubmissions.Where(c => c.submissionID == submissionID && c.deleted == false).FirstOrDefault(); ts.templateID = templateID; context.SaveChanges(); } else { templatesubmission templateRelation = new templatesubmission(); templateRelation.templateID = templateID; templateRelation.submissionID = submissionID; templateRelation.deleted = false; context.templatesubmissions.Add(templateRelation); context.SaveChanges(); } return true; } } catch (Exception ex) { Console.Write("SubmissionManager.assignEvaluator error " + ex); return false; } }
//Jaimeiris - assigns the submission with submissionID to the evaluator with evaluatorID //then sends an email to the evalutor indicating them that theu have a new evaluator to assign public Evaluation assignEvaluator(long submissionID, long evaluatorID) { try { using (conferenceadminContext context = new conferenceadminContext()) { //assigning evaluator to a submission evaluatiorsubmission relation = new evaluatiorsubmission(); relation.evaluatorID = evaluatorID; relation.submissionID = submissionID; relation.statusEvaluation = "Pending"; relation.deleted = false; context.evaluatiorsubmissions.Add(relation); context.SaveChanges(); Evaluation addedRelation = new Evaluation(); addedRelation.submissionID = submissionID; addedRelation.evaluatorID = evaluatorID; addedRelation.evaluatorFirstName = context.evaluators.Where(c => c.deleted == false).FirstOrDefault(c => c.evaluatorsID == evaluatorID).user.firstName; addedRelation.evaluatorLastName = context.evaluators.Where(c => c.deleted == false).FirstOrDefault(c => c.evaluatorsID == evaluatorID).user.lastName; addedRelation.score = 0; addedRelation.evaluatorSubmissionID = context.evaluatiorsubmissions.Where(es => es.submissionID == relation.submissionID && es.evaluatorID == relation.evaluatorID && es.deleted == false).FirstOrDefault().evaluationsubmissionID; //inform evaluator of assigned submission try { string email = relation.evaluator.user.membership.email; String subject = "Caribbean Celebration of Women in Computing Submission Assignment "; String messageBody = "Greetings, \n\n " + "You have been requested to evaluate the submission with the title " + context.submissions.Where(c => c.submissionID == relation.submissionID).FirstOrDefault().title + ". To view and evaluate this submission please login to the system through the following link: \n\n" + "http://136.145.116.238/#/Login/Log" + "."; sendAssignmentEmail(email, subject, messageBody); //inform evaluator of assignment via email } catch (Exception ex) { Console.Write("SubmissionManager.sendAssignmentEmail error " + ex); return null; } return addedRelation; } } catch (Exception ex) { Console.Write("SubmissionManager.assignEvaluator error " + ex); return null; } }
//Jaimeiris - adds a submission file to a submission public documentssubmitted addSubmissionFile(documentssubmitted file) { try { using (conferenceadminContext context = new conferenceadminContext()) { documentssubmitted subDoc = new documentssubmitted(); subDoc.submissionID = file.submissionID; subDoc.documentName = file.documentName; subDoc.document = file.document; subDoc.deleted = false; context.documentssubmitteds.Add(subDoc); context.SaveChanges(); return subDoc; } } catch (Exception ex) { Console.Write("SubmissionManager.addSubmission error " + ex); return null; } }
public SponsorQuery addSponsor(SponsorQuery x) { try { using (conferenceadminContext context = new conferenceadminContext()) { address address = new address(); address.city = x.city; address.country = x.country; address.state = x.state; address.zipcode = x.zipcode; address.line1 = x.line1; address.line2 = x.line2; context.addresses.Add(address); context.SaveChanges(); user user = new user(); user.membershipID = 1; user.firstName = x.firstName; user.lastName = x.lastName; user.userFax = x.userFax; user.phone = x.phone; user.addressID = address.addressID; user.affiliationName = x.company; user.userTypeID = 7; user.deleted = false; context.users.Add(user); context.SaveChanges(); payment payment2 = new payment(); payment2.paymentTypeID = 1; payment2.deleted = false; payment2.creationDate = DateTime.Now; context.payments.Add(payment2); context.SaveChanges(); paymentbill bill = new paymentbill(); bill.AmountPaid = (double)x.amount; bill.paymentID = payment2.paymentID; bill.methodOfPayment = x.method; bill.transactionid = x.transactionID; bill.completed = true; bill.quantity = (int)(x.amount * 100); bill.deleted = false; bill.date = DateTime.Now; context.paymentbills.Add(bill); context.SaveChanges(); sponsor2 sponsor = new sponsor2(); sponsor.userID = user.userID; sponsor.emailInfo = x.email; sponsor.logo = x.logo; sponsor.sponsorType = x.sponsorType; sponsor.totalAmount = x.amount; sponsor.deleted = false; sponsor.byAdmin = true; sponsor.active = true; sponsor.paymentID = payment2.paymentID; context.sponsor2.Add(sponsor); context.SaveChanges(); x.sponsorID = sponsor.sponsorID; x.addressID = address.addressID; x.byAdmin = true; return x; } } catch (Exception ex) { Console.Write("AdminManager.addSponsor 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; } }
public SponsorQuery updateSponsor(SponsorQuery x) { try { using (conferenceadminContext context = new conferenceadminContext()) { var sponsor = (from s in context.sponsor2 from p in context.paymentbills where s.sponsorID == x.sponsorID && s.paymentID == p.paymentID select s).FirstOrDefault(); if (sponsor != null) { sponsor.user.firstName = x.firstName; sponsor.user.lastName = x.lastName; sponsor.logo = x.logo; sponsor.user.phone = x.phone; sponsor.sponsorType = x.sponsorType; sponsor.user.userFax = x.userFax; sponsor.user.address.city = x.city; sponsor.user.address.country = x.country; sponsor.user.address.state = x.state; sponsor.user.address.zipcode = x.zipcode; sponsor.user.address.line1 = x.line1; sponsor.user.address.line2 = x.line2; sponsor.totalAmount = x.amount; context.SaveChanges(); if (x.byAdmin) { var payment = (from p in context.paymentbills where sponsor.paymentID == p.paymentID select p).FirstOrDefault(); payment.AmountPaid = x.amount; payment.methodOfPayment = x.method; payment.quantity = (int)(x.amount * 100); payment.date = DateTime.Now; context.SaveChanges(); } } return x; } } catch (Exception ex) { Console.Write("SponsorManager.updateSponsor error " + ex); return null; } }
//Edits administrator with the specified userID public String editAdministrator(AdministratorQuery editAdmin) { try { using (conferenceadminContext context = new conferenceadminContext()) { //Get privilege name String privilege = (from p in context.privileges where p.privilegesID == editAdmin.privilegeID select p.privilegestType).FirstOrDefault(); //Check if admin had the privilege before var admin = (from s in context.claims where s.userID == editAdmin.userID && s.privilegesID == editAdmin.privilegeID select s).FirstOrDefault(); //Get current--soon to be old privilege--- information var oldAdmin = (from s in context.claims where s.userID == editAdmin.userID && s.privilegesID == editAdmin.oldPrivilegeID && s.deleted != true select s).FirstOrDefault(); if (oldAdmin != null && privilege != null) { //If the user has had the privilege before, recover record by setting deleted attribute to false if (admin != null && admin.claimsID != oldAdmin.claimsID) { admin.deleted = false; oldAdmin.deleted = true; //If the user is an Administrator or 'Evaluator Committee' they receive Evaluator privileges if (privilege != "Finance") { EvaluatorManager evaluator = new EvaluatorManager(); evaluator.addEvaluator(admin.user.membership.email); } } else { //If the user has never had the new privilege to be assigned, substitute. oldAdmin.privilegesID = editAdmin.privilegeID; if (privilege != "Finance") { EvaluatorManager evaluator = new EvaluatorManager(); evaluator.addEvaluator(oldAdmin.user.membership.email); } } //Send confirmation email. try {sendEmailEditAdminConfirmation(oldAdmin.user.membership.email, privilege);} catch (Exception ex) { Console.Write("AdminManager.sendeditAdminEmail error " + ex); return null; } context.SaveChanges(); return privilege == "Admin" ? "Administrator" : privilege == "CommitteEvaluator" ? "Committee Evaluator" : privilege; } return null; } } catch (Exception ex) { Console.Write("AdminManager.editAdministrator error " + ex); return null; } }
//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; } }
//Adds a new administrator with the specified userID and privilege public AdministratorQuery addAdmin(AdministratorQuery s) { try { using (conferenceadminContext context = new conferenceadminContext()) { //Get privilege name s.privilege = (from p in context.privileges where p.privilegesID == s.privilegeID select p.privilegestType).FirstOrDefault(); //Check if user is Member. Note: In the administrator tab the user has already been checked for membership. var userInfo = (from user in context.users where user.membership.email == s.email select user).FirstOrDefault(); if (userInfo != null && s.privilege != null) { //User exists s.userID = userInfo.userID; s.firstName = userInfo.firstName; s.lastName = userInfo.lastName; s.email = userInfo.membership.email; //Check if newAdmin has already a privilege var checkAdmin = (from admin in context.claims where admin.userID == s.userID && admin.privilege.privilegestType != "Evaluator" && admin.deleted != true select admin).FirstOrDefault(); if (checkAdmin != null) { return null; } else { //Check if user has had the privilege before var adminPrivilege = (from admin in context.claims where admin.userID == s.userID && admin.privilege.privilegestType == s.privilege select admin).FirstOrDefault(); if (adminPrivilege != null) { adminPrivilege.deleted = false; context.SaveChanges(); } else { //Add admin claim newAdmin = new claim(); newAdmin.privilegesID = s.privilegeID; newAdmin.deleted = false; newAdmin.userID = s.userID; context.claims.Add(newAdmin); context.SaveChanges(); } try { sendEmailConfirmation(s.email, s.privilege); } catch (Exception ex) { Console.Write("AdminManager.sendnewAdminEmail error " + ex); return null; } if (s.privilege != "Finance") { EvaluatorManager evaluator = new EvaluatorManager(); evaluator.addEvaluator(s.email); } } s.privilege = s.privilege == "Admin" ? "Administrator" : s.privilege == "CommitteEvaluator" ? "Committee Evaluator" : s.privilege; return s; } return null; } } catch (Exception ex) { Console.Write("AdminManager.addAdmin error " + ex); return null; } }
//Jaimeiris - deletes a submission public Submission deleteSubmission(long subID) { try { using (conferenceadminContext context = new conferenceadminContext()) { usersubmission i = null;//previous submission Submission prevSub = null; submission sub = context.submissions.Where(c => c.submissionID == subID).FirstOrDefault(); bool isFinalVersion = context.usersubmission.Where(c => c.deleted == false && c.finalSubmissionID == subID).FirstOrDefault() == null ? false : true; //if its a final version deletes only the final version of the submission, not the previous one if (isFinalVersion) { i = context.usersubmission.Where(c => c.finalSubmissionID == subID).FirstOrDefault(); long submissionID = i.submission1 == null ? -1 : i.submission1.submissionID; String submissionTypeName = i.submission1 == null ? null : i.submission1.submissiontype.name; int submissionTypeID = i.submission1 == null ? -1 : i.submission1.submissionTypeID; String submissionTitle = i.submission1 == null ? null : i.submission1.title; int topiccategoryID = i.submission1 == null ? -1 : i.submission1.topicID; String status = i.submission1 == null ? null : i.submission1.status; bool isEvaluated = (context.evaluatiorsubmissions.Where(c => c.deleted == false && c.submissionID == submissionID).FirstOrDefault() == null ? null : context.evaluatiorsubmissions.Where(c => c.deleted == false && c.submissionID == submissionID).FirstOrDefault().statusEvaluation) == "Evaluated" ? true : false; bool isAssigned = context.evaluatiorsubmissions.Where(c => c.deleted == false && c.submissionID == submissionID).FirstOrDefault() == null ? false : true; bool isFinalSubmission = false; bool finalSubmissionAllowed = (i.allowFinalVersion == null ? false : i.allowFinalVersion) == false ? false : true; prevSub = new Submission(submissionID, submissionTypeName, submissionTypeID, submissionTitle, topiccategoryID, status, isEvaluated, isAssigned, isFinalSubmission, finalSubmissionAllowed); //if submission to be deleted is final version disconnect the final version from the previous one var theFinalSub = context.usersubmission.Where(c => c.deleted == false && c.finalSubmissionID == subID).FirstOrDefault(); theFinalSub.finalSubmissionID = null; } //delete pdf files if (sub.documentssubmitteds != null) { foreach (var s in sub.documentssubmitteds) { s.deleted = true; } } //delete submission sub.deleted = true; //delete user submissions only if submission to be deleted is not a final version of a submission if (sub.usersubmissions.FirstOrDefault() != null && isFinalVersion == false) { sub.usersubmissions.FirstOrDefault().deleted = true; } if (sub.usersubmissions1.FirstOrDefault() != null && isFinalVersion == false) { sub.usersubmissions1.FirstOrDefault().deleted = true; } //if submission is pannel delete extra fields if (sub.submissionTypeID == 3 && sub.panels != null) { foreach (var s in sub.panels) { s.deleted = true; } } //if submission is workshop delete extra fields if (sub.submissionTypeID == 5 && sub.workshops != null) { foreach (var s in sub.workshops) { s.deleted = true; } } //if submission has an evaluator assigned (can only happen when an admin or committe evaluator deletes it) List<evaluatiorsubmission> evaluatorSubmission = context.evaluatiorsubmissions.Where(c => c.submissionID == subID && c.deleted == false).ToList(); foreach (evaluatiorsubmission evalSub in evaluatorSubmission) { evalSub.deleted = true; } context.SaveChanges(); return prevSub; } } catch (Exception ex) { Console.Write("SubmissionManager.deleteSubmission error " + ex); return null; } }
//Jaimeiris - adds a final submission to a existing submission, this is when the submitter os not an administrator //Also removes the evaluator submission assignment for the relations for which the evaluations have not been added and sends an email to the evaluators informing them that they no longer have to evaluate said submission public Submission addFinalSubmission(usersubmission usersubTA, submission submissionToAdd, documentssubmitted submissionDocuments, panel pannelToAdd, workshop workshopToAdd) { try { String email = ""; using (conferenceadminContext context = new conferenceadminContext()) { submission sub = new submission(); //for all types of submissions //table submission sub.topicID = submissionToAdd.topicID; sub.submissionTypeID = submissionToAdd.submissionTypeID; sub.submissionAbstract = submissionToAdd.submissionAbstract; sub.title = submissionToAdd.title; sub.status = "Pending"; sub.creationDate = DateTime.Now; sub.deleted = false; sub.byAdmin = false; context.submissions.Add(sub); context.SaveChanges(); //table usersubmission long finalSubmissionID = sub.submissionID; usersubmission usersub = context.usersubmission.Where(c => c.initialSubmissionID == usersubTA.initialSubmissionID && c.deleted == false).FirstOrDefault(); usersub.finalSubmissionID = finalSubmissionID; context.SaveChanges(); //table documents submitted if (submissionToAdd.submissionTypeID != 4) { documentssubmitted subDocs = new documentssubmitted(); List<documentssubmitted> prevDocuments = context.documentssubmitteds.Where(d => d.submissionID == usersubTA.initialSubmissionID && d.deleted != true).Select(d => d).ToList(); foreach (var doc in prevDocuments) { int count = submissionToAdd.documentssubmitteds.Where(d => d.documentssubmittedID == doc.documentssubmittedID).Count(); if (count != 0) { var newDoc = new documentssubmitted(); newDoc.submissionID = finalSubmissionID; newDoc.documentName = doc.documentName; newDoc.document = doc.document; newDoc.deleted = false; context.documentssubmitteds.Add(newDoc); context.SaveChanges(); } } } //table pannels if (submissionToAdd.submissionTypeID == 3 && pannelToAdd != null) { panel subPanel = new panel(); subPanel.submissionID = finalSubmissionID; subPanel.panelistNames = pannelToAdd.panelistNames; subPanel.plan = pannelToAdd.plan; subPanel.guideQuestion = pannelToAdd.guideQuestion; subPanel.formatDescription = pannelToAdd.formatDescription; subPanel.necessaryEquipment = pannelToAdd.necessaryEquipment; subPanel.deleted = false; context.panels.Add(subPanel); context.SaveChanges(); } //table workshop if (submissionToAdd.submissionTypeID == 5 && workshopToAdd != null) { workshop subWorkshop = new workshop(); subWorkshop.submissionID = finalSubmissionID; subWorkshop.duration = workshopToAdd.duration; subWorkshop.delivery = workshopToAdd.delivery; subWorkshop.plan = workshopToAdd.plan; subWorkshop.necessary_equipment = workshopToAdd.necessary_equipment; subWorkshop.deleted = false; context.workshops.Add(subWorkshop); context.SaveChanges(); } //Delete connection between previous submissions and evaluators that have not evaluated them yet, //since these will not be taken into consideration for the avg score of the final submission List<evaluatiorsubmission> TBD = context.evaluatiorsubmissions.Where(c => c.submissionID == usersubTA.initialSubmissionID && c.statusEvaluation != "Evaluated" && c.deleted == false).ToList(); foreach (var assignment in TBD) { //quitando el assignment de submission y evaluator del intial submission a los q aun no han evaluado, se les envia un email al evaluador de que no esta asignado. assignment.deleted = true; try { email = assignment.evaluator.user.membership.email;//evaluator email String subject = "Caribbean Celebration of Women in Computing Assignment Deletion"; String messageBody = "Greetings, \n\n " + "The request to evaluate the submission with title " + assignment.submission.title + " has been removed. It is no longer required for you to evaluate said submission. To view all of your assigned submission please login to the system through the following link: \n\n" + "http://136.145.116.238/#/Login/Log" + "."; sendAssignmentEmail(email, subject, messageBody); //inform evaluator of deleted assignment via email } catch (Exception ex) { Console.Write("SubmissionManager.addEvaluation error " + ex); return null; } } context.SaveChanges(); Submission addedSub = new Submission { submissionID = finalSubmissionID, submissionTypeName = getSubmissionTypeName(sub.submissionTypeID), submissionTypeID = sub.submissionTypeID, submissionTitle = sub.title, topiccategoryID = sub.topicID, status = sub.status, isEvaluated = false, isFinalSubmission = true }; return addedSub; } } catch (Exception ex) { Console.Write("SubmissionManager.addSubmission error " + ex); return null; } }