示例#1
0
        public ActionResult Edit([Bind(Include = "Id,Title,Content,DateTime,NumberInvited,Active,Place")] Event @event, int[] Members)
        {
            if (ModelState.IsValid)
            {
                @event.EnteredDate = DateTime.Now.Date;
                FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value);
                @event.EnteredBy = Convert.ToInt32(ticket.Name.Split('|')[1]);
                if (Members != null)
                {
                    @event.NumberInvited += Members.Count();
                }
                else
                {
                    foreach (var m in Members)
                    {
                        EventMemberStatu evm = new EventMemberStatu();
                        evm.EventId  = @event.Id;
                        evm.MemberId = m;
                        evm.Status   = "Invited";
                        db.EventMemberStatus.Add(evm);
                    }
                }

                db.Entry(@event).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            ViewBag.EnteredBy = new SelectList(db.Members, "Id", "Username", @event.EnteredBy);
            return(View(@event));
        }
示例#2
0
        public ActionResult Create([Bind(Include = "Id,Title,Content,DateTime,Place")] Event @event, int[] Members)
        {
            if (ModelState.IsValid)
            {
                @event.EnteredDate = DateTime.Now.Date;
                FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value);
                @event.EnteredBy     = Convert.ToInt32(ticket.Name.Split('|')[1]);
                @event.NumberInvited = Members.Count();
                db.Events.Add(@event);
                db.SaveChanges();

                int CurrentEventId = db.Events.OrderByDescending(e => e.Id).FirstOrDefault().Id;
                foreach (var m in Members)
                {
                    EventMemberStatu evm = new EventMemberStatu();
                    evm.EventId  = CurrentEventId;
                    evm.MemberId = m;
                    evm.Status   = "Invited";
                    db.EventMemberStatus.Add(evm);
                }
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.EnteredBy = new SelectList(db.Members, "Id", "Username", @event.EnteredBy);
            return(View(@event));
        }
示例#3
0
        public ActionResult Participate([Bind(Include = "Id,Title,Content,DateTime,NumberInvited,NumberGoing,NumberDeclined,EnteredBy,Place")] Event @event, string MemberStatus, string OldStatus)
        {
            if ((MemberStatus == "Going" || MemberStatus == "Decline") && MemberStatus != OldStatus)
            {
                if (ModelState.IsValid)
                {
                    FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value);
                    int userId = Convert.ToInt32(ticket.Name.Split('|')[1]);

                    var EventStatus = new EventMemberStatu()
                    {
                        EventId = @event.Id, MemberId = userId, Status = MemberStatus
                    };

                    db.EventMemberStatus.Attach(EventStatus);
                    db.Entry(EventStatus).Property(x => x.Status).IsModified = true;

                    switch (MemberStatus)
                    {
                    case "Going":
                        @event.NumberGoing += 1;
                        if (OldStatus != "Invited")
                        {
                            @event.NumberDeclined -= 1;
                        }
                        break;

                    case "Decline":
                        @event.NumberDeclined += 1;
                        if (OldStatus != "Invited")
                        {
                            @event.NumberGoing -= 1;
                        }
                        break;

                    default:
                        break;
                    }

                    db.Entry(@event).State = EntityState.Modified;
                    db.Entry(@event).Property(x => x.EnteredDate).IsModified = false;
                    db.Entry(@event).Property(x => x.Active).IsModified      = false;
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                return(RedirectToAction("Index"));
            }
            //return View(@event);
            return(RedirectToAction("Index"));
        }
示例#4
0
        public ActionResult Participate(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value);
            int userId = Convert.ToInt32(ticket.Name.Split('|')[1]);
            EventMemberStatu @memberStatus = db.EventMemberStatus.Where(e => e.EventId == id && e.MemberId == userId).Select(e => e).FirstOrDefault();

            ViewBag.MemberStatus = @memberStatus;
            Event @event = db.Events.Find(id);

            if (@event == null)
            {
                return(HttpNotFound());
            }
            return(View(@event));
        }