public ActionResult EgysegVasarlas() { var UserId = HttpContext.User.Identity.GetUserId(); var Orszag = Context.Orszagok.SingleOrDefault(o => o.User.Id == UserId); EgysegVasarlasViewModel model = new EgysegVasarlasViewModel { Katonak = Context.LehetsegesEgysegek.Select(e => new KatonaViewModel { Nev = e.Nev, Ar = e.Ar, Ellatmany = e.Ellatmany, Zsold = e.Zsold, TamadoEro = e.TamadoEro, VedekezoEro = e.VedekezoEro, Id = e.Id }).ToList(), Penz = Orszag.Aranytar }; return View(model); }
public ActionResult EgysegVasarlas(EgysegVasarlasViewModel model) { var UserId = HttpContext.User.Identity.GetUserId(); var Orszag = Context.Orszagok.Include("KeszEgysegek.Egyseg").SingleOrDefault(o => o.User.Id == UserId); int ar = 0; var egysegek = Context.LehetsegesEgysegek.ToList(); foreach (var item in model.Katonak) { ar += item.Darab * egysegek.Single(e => e.Id == item.Id).Ar; } // LINQ-val ugyanez: var ar2 = model.Katonak.Sum(k => k.Darab * egysegek.Single(e => e.Id == k.Id).Ar); if (ar > Orszag.Aranytar) { ModelState.AddModelError("", "Nincs elég arany!"); } if (ModelState.IsValid) { foreach (var item in model.Katonak) { var katona = Orszag.KeszEgysegek.SingleOrDefault(k => k.Id == item.Id); if (katona != null) { katona.Darab += item.Darab; } else { var aktualisEgyseg = Context.LehetsegesEgysegek.Single(e => e.Id == item.Id); Orszag.KeszEgysegek.Add(new Models.DataAccess.Entity.KeszEgyseg { Orszag = Orszag, Darab = item.Darab, Egyseg = aktualisEgyseg }); } } Orszag.Aranytar -= ar; Context.SaveChanges(); return RedirectToAction("Overview"); } return View(model); }