public ActionResult AcceptPA(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Advertisement advertisement = db.Advertisements.Find(id);

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

            AcceptAdvertisementViewModel viewModel = new AcceptAdvertisementViewModel();

            viewModel.Advertisement = advertisement;
            viewModel.Performances  = new List <Performance>();
            viewModel.Performances  = db.Performances.ToList();

            return(View(viewModel));
        }
        public ActionResult AcceptPA(AcceptAdvertisementViewModel viewModel)
        {
            var adv = db.Advertisements.Find(viewModel.Advertisement.Id);

            List <ApplicationUser> users = new List <ApplicationUser>();

            int count = 1;

            viewModel.Performances = new List <Performance>();
            viewModel.Performances = db.Performances.ToList();
            foreach (var e in viewModel.Emails)
            {
                if (e == "")
                {
                    continue;
                }

                try
                {
                    var user = db.ApplicationUsers.Where(u => u.Email.Equals(e)).First();
                    if (user.Id.Equals(User.Identity.GetUserId()))
                    {
                        TempData["alert"] = "<script>alert('Nie można przydzielić sobie punktów za wykonanie zadania.');</script>";
                        return(View(viewModel));
                    }
                    users.Add(user);
                }
                catch
                {
                    TempData["alert"] = "<script>alert('Email numer " + count + " jest niepoprawny.');</script>";
                    return(View(viewModel));
                }

                count++;
            }

            if (users.Count == 0)
            {
                TempData["alert"] = "<script>alert('Nikt nie zostało wybrany. Prosimy wybrać co najmniej jednego pomocnika.');</script>";
                return(View(viewModel));
            }

            var    performance   = db.Performances.Find(viewModel.Advertisement.PerformanceId);
            double sumPoints     = adv.Difficulty.Points + performance.Points;
            double usersCount    = users.Count();
            int    pointsPerUser = (int)Math.Floor(sumPoints / usersCount);

            if (ModelState.IsValid)
            {
                adv.PerformanceId = viewModel.Advertisement.PerformanceId;
                adv.IsFinished    = true;

                foreach (var u in users)
                {
                    adv.Helpers.Add(u);
                    u.Points += pointsPerUser;
                }

                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(viewModel));
        }