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)); }