public ActionResult DeleteConfirmed(int id)
        {
            PCmember pCmember = db.PCmembers.Find(id);

            db.PCmembers.Remove(pCmember);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "id_pcmember,id_user,id_conference,is_chair,date_invitation_sent,date_invitation_acc,is_valid")] PCmember pCmember)
 {
     if (ModelState.IsValid)
     {
         db.Entry(pCmember).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(pCmember));
 }
        public ActionResult Create([Bind(Include = "id_pcmember,id_user,id_conference,is_chair,date_invitation_sent,date_invitation_acc,is_valid")] PCmember pCmember)
        {
            if (ModelState.IsValid)
            {
                db.PCmembers.Add(pCmember);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(pCmember));
        }
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PCmember pCmember = db.PCmembers.Find(id);

            if (pCmember == null)
            {
                return(HttpNotFound());
            }
            return(View(pCmember));
        }
        public ActionResult CreateAuthor([Bind(Include = "email, password")] User user)
        {
            Author   newAuthor   = new Author();
            PCmember newPCmember = new PCmember();
            User     x           = (User)Session["User"];
            User     c           = (from u in db.Users where user.email.Equals(x.email) && user.password.Equals(x.password) select u).FirstOrDefault();

            if (c != null)
            {
                newAuthor.id_user         = x.id_user;
                newAuthor.is_coresponding = false;
                db.Authors.Add(newAuthor);
                db.SaveChanges();
                return(RedirectToAction("AllConferences", "Conferences"));
            }
            else
            {
                ViewBag.Message = "You don't have an account, please create an account";
                return(RedirectToAction("NewUser", "Users"));
            }
        }
        public ActionResult AcceptDecline([Bind(Include = "verification_key")] User user, int id_user, int id_conference, String submit)
        {
            if (Request.Form["Accept"] != null)
            {
                Paper paper = (from u in db.Papers where u.id_conference == id_conference select u).FirstOrDefault();

                PCmember newPcMember = new PCmember();
                newPcMember.User       = db.Users.Find(id_user);
                newPcMember.Conference = db.Conferences.Find(id_conference);
                String confName = newPcMember.Conference.conference_name;
                newPcMember.id_user = newPcMember.User.id_user;
                int id = newPcMember.id_user;
                newPcMember.id_conference       = newPcMember.Conference.id_conference;
                newPcMember.is_chair            = false;
                newPcMember.is_valid            = false;
                newPcMember.date_invitation_acc = DateTime.Now;
                string   invitation_sent = (String)Session["date_invitation_sent"];
                DateTime myDate          = DateTime.Parse(invitation_sent);
                newPcMember.date_invitation_sent = (DateTime)myDate;
                db.PCmembers.Add(newPcMember);
                db.SaveChanges();

                PCmember pcm = db.PCmembers.Find(newPcMember.id_pcmember);

                PaperAssignment newPaperAssignment = new PaperAssignment();
                Conference      conf = db.Conferences.Find(id_conference);
                newPaperAssignment.Paper       = paper;
                newPaperAssignment.PCmember    = pcm;
                newPaperAssignment.id_paper    = paper.id_paper;
                newPaperAssignment.id_pcmember = pcm.id_pcmember;


                // de refacut - date_assigned - date_submitted
                newPaperAssignment.date_assigned = paper.date_submitted;
                //termen de 2 zile pana cand mai poate reincarca lucrarea
                newPaperAssignment.date_due     = newPaperAssignment.date_assigned.AddHours(48);
                newPaperAssignment.is_delegated = false;
                db.PaperAssignments.Add(newPaperAssignment);
                db.SaveChanges();


                PaperAssignment pp             = db.PaperAssignments.Find(newPaperAssignment.id_paper_assignment);
                Subreviewer     newSubreviewer = new Subreviewer();

                newSubreviewer.PaperAssignment     = pp;
                newSubreviewer.id_paper_assignment = pp.id_paper_assignment;
                PaperAssignment p  = db.PaperAssignments.Find(pp.id_paper_assignment);
                PCmember        pc = p.PCmember;
                User            us = db.Users.Find(pc.id_user);
                newSubreviewer.User    = us;
                newSubreviewer.id_user = us.id_user;

                newSubreviewer.date_invitation_answer = newPcMember.date_invitation_acc;
                newSubreviewer.date_invitation_send   = newPcMember.date_invitation_sent;
                newSubreviewer.is_accepted            = true;
                newSubreviewer.PaperAssignment        = p;
                newSubreviewer.id_paper_assignment    = p.id_paper_assignment;

                db.Subreviewers.Add(newSubreviewer);
                db.SaveChanges();
            }
            else if (Request.Form["Decline"] != null)
            {
                return(RedirectToAction("Reconsideration", "PCmembers"));
            }
            return(RedirectToAction("SubreviewerDetails", "PaperAssignments", new { id = id_user }));
        }
        public ActionResult SubmitPaper([Bind(Include = "id_paper,title,email,contributions,text")] Paper paper, int id_conference)
        {
            //var file = paper.pdf;
            PCmember newPCmember = new PCmember();
            User     user        = (User)Session["User"];
            Author   a           = (from u in db.Authors where (u.id_user).Equals(user.id_user) select u).FirstOrDefault();
            Author   au          = db.Authors.Find(a.id_author);

            paper.id_conference    = id_conference;
            paper.Author           = au;
            paper.pdf              = "";
            paper.date_submitted   = DateTime.Now;
            paper.is_submitted     = true;
            paper.decision_date    = DateTime.Now.AddHours(48);
            paper.decision_text    = "";
            paper.decision         = false;
            a.id_paper             = paper.id_paper;
            paper.PaperAssignments = new List <PaperAssignment>();
            User us = db.Users.Find(user.id_user);

            newPCmember.User    = us;
            newPCmember.id_user = us.id_user;
            Conference C = db.Conferences.Find(id_conference);

            newPCmember.Conference           = C;
            newPCmember.id_conference        = id_conference;
            newPCmember.is_chair             = false;
            newPCmember.date_invitation_acc  = DateTime.Now;
            newPCmember.date_invitation_sent = DateTime.Now;
            newPCmember.is_valid             = false;


            if (ModelState.IsValid)
            {
                db.Papers.Add(paper);
                db.PCmembers.Add(newPCmember);
                try
                {
                    db.SaveChanges();
                }
                catch (DbEntityValidationException e)
                {
                    foreach (var eve in e.EntityValidationErrors)
                    {
                        Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                          eve.Entry.Entity.GetType().Name, eve.Entry.State);
                        foreach (var ve in eve.ValidationErrors)
                        {
                            Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                              ve.PropertyName, ve.ErrorMessage);
                        }
                    }
                    throw;
                }

                return(RedirectToAction("GetFile", new { id = paper.id_paper }));
            }



            return(View(paper));
        }