Beispiel #1
0
        public ActionResult Participate(ParticipateContestBindingModel model)
        {
            if (ModelState.IsValid)
            {
                string userId = this.service.GetUserIdByName(User.Identity.Name);

                bool isSucceeded = this.service.AddUserToContest(userId, model);

                if (isSucceeded)
                {
                    this.AddNotification($"{User.Identity.Name} was joined successfuly!", NotificationType.SUCCESS);
                    return(RedirectToAction("Contests"));
                }
            }
            this.AddNotification($"{ User.Identity.Name} wasn't joined to contest!", NotificationType.ERROR);
            return(RedirectToAction("Contests"));
        }
Beispiel #2
0
        public ActionResult Unparticipate(ParticipateContestBindingModel model)
        {
            if (ModelState.IsValid)
            {
                string userId = this.service.GetUserIdByName(User.Identity.Name);

                bool isRemoved = this.service.RemoveUserFromContest(userId, model);

                if (isRemoved)
                {
                    this.AddNotification($"{User.Identity.Name} was retreated to this contest", NotificationType.SUCCESS);
                    return(RedirectToAction("Contests"));
                }
            }

            this.AddNotification($"{User.Identity.Name} wasn't retreated to this contest", NotificationType.ERROR);
            return(RedirectToAction("Contests"));
        }
        public bool AddUserToContest(string userId, ParticipateContestBindingModel model)
        {
            int regularUserId = this.db.RegularUsers.FindFirst(u => u.AppUserId == userId).Id;

            this.db.Contests.FindFirst(c => c.Id == model.ContestId).Participants.Add(new ContestRegularUser
            {
                RegularUserId = regularUserId
            });

            try
            {
                this.db.SaveChanges();
            }
            catch (DbEntityValidationException)
            {
                return(false);
            }

            return(true);
        }
        public bool RemoveUserFromContest(string userId, ParticipateContestBindingModel model)
        {
            int regularUserId = this.db.RegularUsers.FindFirst(u => u.AppUserId == userId).Id;

            var contestUser = this.db.Contests.FindFirst(c => c.Id == model.ContestId).Participants
                              .FirstOrDefault(c => c.RegularUserId == regularUserId);

            this.db.Contests.FindFirst(c => c.Id == model.ContestId).Participants.Remove(contestUser);

            try
            {
                this.db.SaveChanges();
            }
            catch (DbEntityValidationException)
            {
                return(false);
            }

            return(true);
        }