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; } }
//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); } }
//Get sponsor's logos by category. public BannerSponsorQuery getBannerList(String sponsor, int index) { BannerSponsorQuery page = new BannerSponsorQuery(); try { int pageSize = 10; using (conferenceadminContext context = new conferenceadminContext()) { var query = context.sponsor2.Where(x => x.deleted != true && x.sponsortype1.name == sponsor && x.logo != "" && x.logo != null && x.sponsorID != 1).Select(x => new BannerQuery { sponsor = x.user.affiliationName, logo = x.logo }).OrderBy(x => x.sponsor); //Paging: Depending on the index value (which represents a page number) filters the results to the adequeate pageSize page.rowCount = query.Count(); if (page.rowCount > 0) { page.maxIndex = (int)Math.Ceiling(page.rowCount / (double)pageSize); var administrators = query.Skip(pageSize * index).Take(pageSize).ToList(); //Skip past rows and take new elements page.results = administrators; } return page; } } catch (Exception ex) { Console.Write("BannerManager.getBannerList error " + ex); return null; } }
public static UserAuth login(membership param) { using (conferenceadminContext contx = new conferenceadminContext()) { /*UserAuth user = (from g in contx.memberships join u in contx.users on g.membershipID equals u.membershipID where g.email == param.email && g.password.Equals(param.password) && g.deleted == false && u.deleted == false select new UserAuth { userID = u.userID, memberID = g.membershipID, password = g.password, email = g.email, userType = u.userTypeID }).FirstOrDefault(); */ //copy paste del query de maria, solo quite: && g.password.Equals(param.password) del where clause y anadi: passwordSalt = g.passwordSalt, al select UserAuth user = (from g in contx.memberships join u in contx.users on g.membershipID equals u.membershipID where g.email == param.email && g.deleted == false && u.deleted == false select new UserAuth { userID = u.userID, memberID = g.membershipID, password = g.password, email = g.email, userType = u.userTypeID }).FirstOrDefault(); if (user == null) { return null; } else { var crypto = new SimpleCrypto.PBKDF2(); if (Security.ValidateSHA1HashData(param.password, user.password)) // if( string.Equals(crypto.Compute(param.password, user.passwordSalt), user.password, StringComparison.Ordinal)) return user; else{ 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; } }
//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 List<templateQuery> getTemplates() { try { using (conferenceadminContext context = new conferenceadminContext()) { var tempList = (from t in context.authorizationtemplates where t.deleted == false select new templateQuery { authorizationID = t.authorizationID, authorizationName = t.authorizationName, authorizationDocument = t.authorizationDocument, }).ToList(); return tempList; } } catch (Exception ex) { Console.Write("AdminManager.getTemplates error " + ex); return null; } }
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; } }
/* [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; } }
/* [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] Verify the complementary key */ public bool checkComplementaryKey(string key) { try { using (conferenceadminContext context = new conferenceadminContext()) { complementarykey complementaryKey = context.complementarykeys.Where(ck => ck.key == key && ck.isUsed == false && ck.deleted == false).FirstOrDefault(); return complementaryKey != null; } } catch (Exception ex) { Console.Write("ProfileAuthorizationManager.checkComplementaryKey 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; } }
public UserCreation changePassword(UserCreation u) { using (conferenceadminContext context = new conferenceadminContext()) { try { /*var member = (from m in context.memberships where (m.email.Equals(u.email) && m.password== u.password && m.deleted == false) select m).FirstOrDefault(); */ //same as in login, had to remove password check from query var member = (from m in context.memberships where (m.email.Equals(u.email) && m.deleted == false) select m).FirstOrDefault(); if (Security.ValidateSHA1HashData(u.password, member.password)) { }//if password is the same member stays the same else member = null; if (member != null) { //encryption var newEncrpPass = Security.GetSHA1HashData(u.newPass); //end encryption //member.password = u.newPass;//without encryption, old member.password = newEncrpPass; u.membershipID = member.membershipID; context.SaveChanges(); return u; } else { return null; } } catch (Exception ex) { Console.Write("checkEmail error " + ex); return null; } } }
/* [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; } }
/* [Randy] Download a selected authorization file */ public Authorization getAuthorizationFile(int authorizationID) { try { using (conferenceadminContext context = new conferenceadminContext()) { Authorization file = context.authorizationsubmitteds.Where(c => c.authorizationSubmittedID == authorizationID && c.deleted == false). Select(d => new Authorization { authorizationID = d.authorizationSubmittedID, authorizationName = d.documentName, authorizationFile = d.documentFile }).FirstOrDefault(); return file; } } catch (Exception ex) { Console.Write("ProfileAuthorizationManager.getAuthorizationFile error " + ex); return null; } }
/* [Randy] Get the submitted companion key */ public CompanionKey getCompanionKey(UserInfo user) { try { using (conferenceadminContext context = new conferenceadminContext()) { companionminor companionminor = context.companionminors.Where(cm => cm.minor.userID == user.userID).FirstOrDefault(); if (companionminor != null) { string key = companionminor.companion.companionKey; return new CompanionKey { companionKey = key }; } else return new CompanionKey(); } } catch (Exception ex) { Console.Write("ProfileAuthorizationManager.getCompanionKey error " + ex); return null; } }
//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; } }
//Verify the specified email has an accoun in conference admin. //Returns true if a match is made, false otherwise public bool checkNewEvaluator(String email) { try { using (conferenceadminContext context = new conferenceadminContext()) { var result = (from s in context.users where s.membership.email == email select s.userID).Count(); if (result > 0) { return true; } return false; } } catch (Exception ex) { Console.Write("EvaluatorManager.checkNewEvaluator error " + ex); return false; } }
private bool getDeadlineStatus(string deadlineName) { try { using (conferenceadminContext context = new conferenceadminContext()) { WebManager webManager = new WebManager(); string deadline = webManager.getInterfaceElement(deadlineName).content; var Day = Convert.ToInt32(deadline.Split('/')[1]); var Month = Convert.ToInt32(deadline.Split('/')[0]); var Year = Convert.ToInt32(deadline.Split('/')[2]); DateTime submissionDeadline = new DateTime(Year, Month, Day); return (DateTime.Compare(submissionDeadline, DateTime.Now.Date) >= 0); } } catch (Exception ex) { Console.Write("PaymentManager.getAmountInDeadline error " + ex); return false; } }
//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; } }
public AmountSatusRegistration getUserPriceInDeadline(int typeID) { try { using (conferenceadminContext context = new conferenceadminContext()) { var type = context.usertypes.Where(x => x.userTypeID == typeID).First(); AmountSatusRegistration amountStatus = new AmountSatusRegistration(); if (getDeadlineStatus("registrationDeadline")) { amountStatus.amount = (double)type.registrationCost; amountStatus.inTime = true; amountStatus.inTimeLateFee = false; } else if (getDeadlineStatus("lateRegistrationDeadline")) { amountStatus.amount = (double)type.registrationLateFee; amountStatus.inTime = false; amountStatus.inTimeLateFee = true; } else { amountStatus.inTime = false; amountStatus.inTimeLateFee = false; } return amountStatus; } } catch (Exception ex) { Console.Write("PaymentManager.getAmountInDeadline error " + ex); return null; } }
public PaymentQuery getUserPayment(long id) { try { using (conferenceadminContext context = new conferenceadminContext()) { var paymentInfo = (from s in context.paymentbills from sp in context.registrations where s.paymentID == sp.paymentID && s.deleted == false && sp.userID == id && s.completed == true select new PaymentQuery { paymentBillID = s.paymentBillID, date = s.date, affiliationName = sp.user.affiliationName, transactionid = s.transactionid, AmountPaid = s.AmountPaid, methodOfPayment = s.methodOfPayment, firstName = s.firstName, lastName = s.lastName, email = s.email, tandemID = s.tandemID, batchID = s.batchID, userFirstName = sp.user.firstName, userLastName = sp.user.lastName, type = sp.user.usertype.userTypeName, description = "User Registration" }).FirstOrDefault(); if (paymentInfo == null) { paymentInfo = (from r in context.paymentcomplementaries join p in context.complementarykeys on r.complementaryKeyID equals p.complementarykeyID join pay in context.payments on r.paymentID equals pay.paymentID join y in context.sponsor2 on p.sponsorID2 equals y.sponsorID join x in context.registrations on r.paymentID equals x.paymentID where id == x.userID && x.deleted == false && r.deleted == false && p.deleted == false && pay.deleted == false select new PaymentQuery { paymentBillID = r.paymentcomplementaryID, complementaryKey = p.key, date = (DateTime)pay.creationDate, affiliationName = x.user.affiliationName, transactionid = "N/A", AmountPaid = 0, methodOfPayment = "Complementary Key", userFirstName = x.user.firstName, userLastName = x.user.lastName, email = x.user.membership.email, tandemID = "N/A", batchID = "N/A", firstName = y.user.firstName, lastName = y.user.lastName, description = "User Registration", type = x.user.usertype.userTypeName, }).FirstOrDefault(); } if (paymentInfo == null) { PaymentQuery error = new PaymentQuery(); error.paymentBillID = -1;///not found return error; } else { return paymentInfo; } } } catch (Exception ex) { Console.Write("PaymetnManager.getPaymentReceiptInfo error " + ex); return null; } }
public List<PaymentQuery> getSponsorPayments(long id) { try { using (conferenceadminContext context = new conferenceadminContext()) { var paymentInfo = (from s in context.paymentbills from sp in context.sponsor2 where sp.userID == id && s.deleted == false && sp.paymentID == s.paymentID && s.completed == true select new PaymentQuery { paymentBillID = s.paymentBillID, date = s.date, transactionid = s.transactionid, AmountPaid = s.AmountPaid, methodOfPayment = s.methodOfPayment, firstName = s.firstName, lastName = s.lastName, email = s.email, tandemID = s.tandemID, batchID = s.batchID, userFirstName = sp.user.firstName, userLastName = sp.user.lastName, affiliationName = sp.user.affiliationName, type = sp.sponsortype1.name, description = "Sponsor Donation" }).ToList(); return paymentInfo; } } catch (Exception ex) { Console.Write("PaymetnManager.getPaymentSponsorsReceiptInfo error " + ex); return null; } }
public PaymentQuery getPayment(long id) { try { using (conferenceadminContext context = new conferenceadminContext()) { var paymentInfo = (from s in context.paymentbills from sp in context.sponsor2 where s.paymentBillID == id && s.deleted == false && sp.paymentID == s.paymentID && s.completed == true select new PaymentQuery { paymentBillID = s.paymentBillID, date = s.date, affiliationName = sp.user.affiliationName, transactionid = s.transactionid, AmountPaid = s.AmountPaid, methodOfPayment = s.methodOfPayment, firstName = s.firstName, lastName = s.lastName, email = s.email, tandemID = s.tandemID, batchID = s.batchID, userFirstName = sp.user.firstName, userLastName = sp.user.lastName, type = sp.sponsortype1.name, description = "Sponsor Donation" }).FirstOrDefault(); if (paymentInfo == null) { paymentInfo = (from s in context.paymentbills from r in context.registrations where s.paymentBillID == id && s.deleted == false && r.paymentID == s.paymentID && s.completed == true select new PaymentQuery { paymentBillID = s.paymentBillID, date = (DateTime)s.payment.creationDate, transactionid = s.transactionid, AmountPaid = s.AmountPaid, methodOfPayment = s.methodOfPayment, firstName = s.firstName, lastName = s.lastName, email = s.email, tandemID = s.tandemID, batchID = s.batchID, userFirstName = r.user.firstName, userLastName = r.user.lastName, affiliationName = r.user.affiliationName, type = r.user.usertype.userTypeName, description = "User Registration." }).FirstOrDefault(); } if (paymentInfo == null) { PaymentQuery error = new PaymentQuery(); error.paymentBillID = -1;//notify not found return error; } return paymentInfo; } } catch (Exception ex) { Console.Write("PaymetnManager.getPaymentReceiptInfo error " + ex); return null; } }
public LoginModule(conferenceadminContext context, ITokenizer tokenizer) : base("/auth") { SignUpManager signUp = new SignUpManager(); Post["/login"] = parameters => { var paramuser = this.Bind<membership>(); NancyService.Modules.LoginAuthenticateManager.UserAuth user = LoginAuthenticateManager.login(paramuser); if (user == null) { return HttpStatusCode.Unauthorized; } var userIdentity = user.GetIdentity(); var token = tokenizer.Tokenize(userIdentity, Context); return new { memberID = user.memberID, userID = user.userID, userClaims = userIdentity.Claims, Token = token, email = user.email, }; }; Get["/accountConfirmation/{key}"] = parameters => { string key = parameters.key; String result = signUp.confirmAccount(key); if (result != null) return Response.AsJson(result); else { return HttpStatusCode.Conflict; } }; Get["/checkEmail/{email}"] = parameters => { string email = parameters.email; String result = signUp.checkEmail(email); if (result != null) return Response.AsJson(result); else { return HttpStatusCode.Conflict; } }; Get["/requestPass/{email}"] = parameters => { string email = parameters.email; String result = signUp.requestPass(email); if (result != null) return Response.AsJson(result); else { return HttpStatusCode.Conflict; } }; Post["/changePassword"] = parameters => { NancyService.Modules.SignUpManager.UserCreation member = this.Bind<NancyService.Modules.SignUpManager.UserCreation>(); if (member == null) { return HttpStatusCode.Conflict; } else { return Response.AsJson(signUp.changePassword(member)); } }; Post["/createUser"] = parameters => { var user = this.Bind<user>(); var member = this.Bind<membership>(); var address = this.Bind<address>(); if (user == null) { return HttpStatusCode.Conflict; } else { if (signUp.createUser(user, member, address)) return HttpStatusCode.Created; else { return HttpStatusCode.InternalServerError; } } }; }
//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; } }
//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; } }
//Search evaluators that contain the specified criteria //Returns userID, first name, last name, email and its evaluator status public EvaluatorPagingQuery searchEvaluators(int index, String criteria) { EvaluatorPagingQuery e = new EvaluatorPagingQuery(); try { using (conferenceadminContext context = new conferenceadminContext()) { int pageSize = 10; //Get all evaluators applications var query = context.users.Where(evaluator => ((evaluator.firstName.ToLower() + " " + evaluator.lastName.ToLower()).Contains(criteria.ToLower()) || evaluator.membership.email.ToLower().Contains(criteria.ToLower())) && (evaluator.evaluatorStatus == "Accepted" || evaluator.evaluatorStatus == "Rejected" || evaluator.evaluatorStatus == "Pending")).Select(evaluator => new EvaluatorQuery { userID = (long)evaluator.userID, firstName = evaluator.firstName, lastName = evaluator.lastName, email = evaluator.membership.email, acceptanceStatus = evaluator.evaluatorStatus }).OrderBy(x => x.email); e.rowCount = query.Count(); //Paging -> Filter results to 10 records per index (page) if (e.rowCount > 0) { e.maxIndex = (int)Math.Ceiling(e.rowCount / (double)pageSize); var evaluators = query.Skip(pageSize * index).Take(pageSize).ToList(); //Skip past rows and take new elements e.results = evaluators; } return e; } } catch (Exception ex) { Console.Write("EvaluatorManager.searchEvaluators error " + ex); return null; } }
//Get list of evaluators with an 'Pending' status //Returns userID, first name, last name, email and its evaluator status public EvaluatorPagingQuery getPendingList(int index) { EvaluatorPagingQuery e = new EvaluatorPagingQuery(); try { using (conferenceadminContext context = new conferenceadminContext()) { int pageSize = 10; //Get list of pending applications var query = context.users.Where(evaluator => evaluator.evaluatorStatus == "Pending").Select(evaluator => new EvaluatorQuery { userID = (long)evaluator.userID, firstName = evaluator.firstName, lastName = evaluator.lastName, email = evaluator.membership.email, acceptanceStatus = evaluator.evaluatorStatus }).OrderBy(x => x.email); e.rowCount = query.Count(); //Paging -> Filter results to obtain 10 results per page (index references to page number) if (e.rowCount > 0) { e.maxIndex = (int)Math.Ceiling(e.rowCount / (double)pageSize); var pending = query.Skip(pageSize * index).Take(pageSize).ToList(); //Skip past rows and take new elements e.results = pending; } return e; } } catch (Exception ex) { Console.Write("EvaluatorManager.getPendingList error " + ex); return null; } }
//Get list of evaluators with an 'Accepted' or 'Rejected' status //Returns userID, first name, last name, email and its evaluator status public EvaluatorPagingQuery getEvaluatorList(int index, int id) { EvaluatorPagingQuery e = new EvaluatorPagingQuery(); try { using (conferenceadminContext context = new conferenceadminContext()) { int pageSize = 10; //Get list of evaluators var query = context.users.Where(evaluator => (evaluator.evaluatorStatus == "Accepted" || evaluator.evaluatorStatus == "Rejected") && evaluator.userID != id && context.claims.Where(x => x.userID == evaluator.userID && x.deleted != true && (x.privilege.privilegesID == 1 || x.privilege.privilegesID == 3 || x.privilege.privilegesID == 5)).Select(x => x.userID).Count() == 0).Select(evaluator => new EvaluatorQuery { userID = (long)evaluator.userID, firstName = evaluator.firstName, lastName = evaluator.lastName, email = evaluator.membership.email, acceptanceStatus = evaluator.evaluatorStatus }).OrderBy(x => x.email); e.rowCount = query.Count(); //Paging -> Filter results to obtain 10 results per page (index references to page number) if (e.rowCount > 0) { e.maxIndex = (int)Math.Ceiling(e.rowCount / (double)pageSize); var evaluators = query.Skip(pageSize * index).Take(pageSize).ToList(); //Skip past rows and take new elements e.results = evaluators; } return e; } } catch (Exception ex) { Console.Write("EvaluatorManager.getEvaluatorList error " + ex); return null; } }