コード例 #1
0
        // GET: Participations/Add
        public ActionResult Add(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ClassifiedOffering classifiedOffering = db.ClassifiedOfferings.Find(id);

            if (classifiedOffering == null)
            {
                return(HttpNotFound());
            }

            ActionResult notAuthenticated = CheckAuthenticated(id);

            if (notAuthenticated != null)
            {
                return(notAuthenticated);
            }
            Participation part = new Participation();

            part.ClassifiedOfferingID = (int)id;
            ViewBag.OffererID         = new SelectList(db.Users, "ID", "Pseudo");
            return(View(part));
        }
コード例 #2
0
        public ActionResult Add([Bind(Include = "ID,OffererID")] Participation participation, int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ClassifiedOffering classifiedOffering = db.ClassifiedOfferings.Find(id);

            if (classifiedOffering == null)
            {
                return(HttpNotFound());
            }
            ActionResult notAuthenticated = CheckAuthenticated(id);

            if (notAuthenticated != null)
            {
                return(notAuthenticated);
            }

            if (ModelState.IsValid)
            {
                participation.ClassifiedOfferingID = (int)id;
                db.Participations.Add(participation);
                db.SaveChanges();
                return(RedirectToAction("Details", "ClassifiedOfferings", new { id = id }));
            }

            ViewBag.ReceiverID = new SelectList(db.Users, "ID", "Pseudo", participation.ReceiverID);
            return(View(participation));
        }
コード例 #3
0
        public ActionResult Create([Bind(Include = "ID,Name,CreationDate,CreatorID")] ClassifiedOffering classifiedOffering)
        {
            ActionResult NotAuthenticated = CheckAuthenticated();

            if (NotAuthenticated != null)
            {
                return(NotAuthenticated);
            }

            if (ModelState.IsValid)
            {
                // Update classified offering
                classifiedOffering.CreatorID    = ((User)Session["connectedUser"]).ID;
                classifiedOffering.CreationDate = DateTime.Now;
                classifiedOffering.isLocked     = false;
                db.ClassifiedOfferings.Add(classifiedOffering);
                // Create participation for creator
                Participation participation = new Participation();
                participation.OffererID = classifiedOffering.CreatorID;
                db.Participations.Add(participation);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(classifiedOffering));
        }
コード例 #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            ClassifiedOffering classifiedOffering = db.ClassifiedOfferings.Find(id);
            ActionResult       NotAuthenticated   = CheckAuthenticated(classifiedOffering.CreatorID);

            if (NotAuthenticated != null)
            {
                return(NotAuthenticated);
            }
            db.ClassifiedOfferings.Remove(classifiedOffering);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #5
0
        // GET: ClassifiedOfferings/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ClassifiedOffering classifiedOffering = db.ClassifiedOfferings.Include(co => co.Participations).First(co => co.ID == id);

            if (classifiedOffering == null)
            {
                return(HttpNotFound());
            }
            return(View(classifiedOffering));
        }
コード例 #6
0
        public ActionResult Edit([Bind(Include = "ID,Name,CreationDate,CreatorID")] ClassifiedOffering classifiedOffering)
        {
            ClassifiedOffering data             = db.ClassifiedOfferings.Find(classifiedOffering.ID);
            ActionResult       NotAuthenticated = CheckAuthenticated(data.CreatorID);

            if (NotAuthenticated != null)
            {
                return(NotAuthenticated);
            }
            if (ModelState.IsValid)
            {
                db.Entry(data).State = EntityState.Modified;
                data.Name            = classifiedOffering.Name;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(classifiedOffering));
        }
コード例 #7
0
        public ActionResult Lock(int id)
        {
            ClassifiedOffering classifiedOffering = db.ClassifiedOfferings.Include(co => co.Participations).First(co => co.ID == id);
            ActionResult       NotAuthenticated   = CheckAuthenticated(classifiedOffering.CreatorID);

            if (NotAuthenticated != null)
            {
                return(NotAuthenticated);
            }
            if (!classifiedOffering.isLocked)
            {
                classifiedOffering.isLocked = true;
                generateParticipations(classifiedOffering.Participations);
                db.Entry(classifiedOffering).State = EntityState.Modified;
                db.SaveChanges();
            }

            return(RedirectToAction("Details", new { id = id }));
        }
コード例 #8
0
        private ActionResult CheckAuthenticated(int?id = null)
        {
            User user = (User)Session["connectedUser"];

            if (user == null)
            {
                return(RedirectToAction("SignIn", "User"));
            }

            if (id != null)
            {
                ClassifiedOffering classifiedOffering = db.ClassifiedOfferings.Find(id);
                if (user.ID != classifiedOffering.CreatorID && user.Role != 0)
                {
                    return(RedirectToAction("Forbidden", "Home"));
                }
            }

            return(null);
        }
コード例 #9
0
        // GET: ClassifiedOfferings/Lock
        public ActionResult Lock(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ClassifiedOffering classifiedOffering = db.ClassifiedOfferings.Find(id);

            if (classifiedOffering == null)
            {
                return(HttpNotFound());
            }
            ActionResult NotAuthenticated = CheckAuthenticated(classifiedOffering.CreatorID);

            if (NotAuthenticated != null)
            {
                return(NotAuthenticated);
            }
            return(View(classifiedOffering));
        }