예제 #1
0
        //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;
            }
        }
예제 #2
0
        //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;
            }
        }
예제 #3
0
        //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;
            }
        }