public ActionResult BadgeApplication(Guid id, string message)
        {
            Guid currentMemberId = GetCurrentMember().Id;

            // Check for an existing open application
            bool alreadyApplied = db.MemberBadges.Any(
                mb => mb.MemberId == currentMemberId
                    && mb.BadgeId == id
                    && mb.Awarded == null
                    && mb.RejectedDate == null);
            if (alreadyApplied)
            {
                return Json("OK");
            }

            Guid badgeId = id;
            MemberBadge application = new MemberBadge
            {
                MemberId = currentMemberId,
                BadgeId = badgeId,
                ApplicationDate = DateTime.UtcNow,
                ApplicationNotes = message
            };
            db.MemberBadges.Add(application);
            db.SaveChanges();
            return Json("OK");
        }
Exemplo n.º 2
0
        public static void ChangeBadgesOfMember(int memberId, List <int> badgesIds)
        {
            using (var dc = new DataContext())
            {
                List <MemberBadge> OldBs = Badges.GetAllMemberBadgesOfMember(memberId);
                List <MemberBadge> NewBs = new List <MemberBadge>();

                foreach (int bId in badgesIds)
                {
                    MemberBadge mb = new MemberBadge
                    {
                        MemberId = memberId,
                        BadgeId  = bId
                    };
                    NewBs.Add(mb);
                }

                List <MemberBadge> DeleteBs = OldBs.Except(NewBs).ToList();
                dc.MemberBadges.RemoveRange(DeleteBs);

                dc.SaveChanges();

                List <MemberBadge> AddBs = NewBs.Except(OldBs).ToList();
                dc.MemberBadges.AddRange(AddBs);

                dc.SaveChanges();
            }
        }
        // POST api/MemberBadge
        public HttpResponseMessage PostMemberBadge(MemberBadge memberbadge)
        {
            if (ModelState.IsValid)
            {
                db.MemberBadges.Add(memberbadge);
                db.SaveChanges();

                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, memberbadge);
                response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = memberbadge.Id }));
                return response;
            }
            else
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }
        }
        // PUT api/MemberBadge/5
        public HttpResponseMessage PutMemberBadge(Guid id, MemberBadge memberbadge)
        {
            if (ModelState.IsValid && id == memberbadge.Id)
            {
                db.Entry(memberbadge).State = EntityState.Modified;

                try
                {
                    db.SaveChanges();
                }
                catch (DbUpdateConcurrencyException)
                {
                    return Request.CreateResponse(HttpStatusCode.NotFound);
                }

                return Request.CreateResponse(HttpStatusCode.OK);
            }
            else
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }
        }