/* [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;
            }
        }
Пример #3
0
        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;
            }
        }
Пример #4
0
        //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;
            }
        }
Пример #6
0
        //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);

            }
        }
Пример #7
0
        /* [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;
     }
 }
Пример #9
0
        /* [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;
            }
        }
Пример #10
0
        //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;
            }
        }
Пример #11
0
        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;
            }
        }
Пример #12
0
        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;
            }
        }
Пример #13
0
        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;
            }
        }
Пример #14
0
        //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;
            }
        }
Пример #15
0
        //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;
            }
        }
Пример #16
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;
            }
        }
Пример #17
0
        //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;
            }
        }
Пример #18
0
        //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;
            }
        }
Пример #19
0
 //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;
     }
 }
Пример #20
0
 //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;
     }
 }
Пример #21
0
        //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;
            }
        }
Пример #22
0
        //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;
            }
        }
Пример #23
0
        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;
            }
        }
Пример #24
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;
            }
        }
Пример #25
0
        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;
            }
        }
Пример #26
0
        //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;
            }
        }
Пример #27
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;
            }
        }
Пример #28
0
        //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;
            }
        }
Пример #29
0
        //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;
            }
        }
Пример #30
0
        //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;
            }
        }