public ActionResult Index(int nivelId) { UserProfile user = null; List <int> skinsUser; using (var db = new UsersContext()) { var id = WebSecurity.GetUserId(User.Identity.Name); user = db.UserProfiles.FirstOrDefault(x => x.UserId == id); if (user != null) { ViewBag.Pontos = user.Pontos; ViewBag.Saldo = user.Saldo; } } using (var db = new UserSkisContext()) { skinsUser = db.UserSkins.Where(u => u.UserId == user.UserId).Select(x => x.SkinId).ToList(); } using (var db = new NiveisContext()) { ViewBag.Nivel = db.Niveis.FirstOrDefault(x => x.Id == nivelId); } using (var db = new SkinsContext()) { var itens = new List <Skin>(); var skPadrao = db.Skins.FirstOrDefault(x => x.Id == 2); var skCompradas = skinsUser.Select(i => db.Skins.FirstOrDefault(x => x.Id == i)).ToList(); itens.Add(skPadrao); if (skCompradas.Any()) { itens.AddRange(skCompradas); } ViewBag.Skins = JsonConvert.SerializeObject(itens.Select(x => new { x.Id, x.Nome })); } return(View()); }
public JsonResult Comprar(int Id) { UserProfile user = null; bool retorno = true; using (var db = new UsersContext()) { var id = WebSecurity.GetUserId(User.Identity.Name); user = db.UserProfiles.FirstOrDefault(x => x.UserId == id); if (user != null && user.Saldo > 100) { user.Saldo -= 100; } else { retorno = false; } db.SaveChanges(); } if (retorno) { using (var db = new UserSkisContext()) { var itemId = db.UserSkins.Any() ? db.UserSkins.OrderByDescending(x => x.Id).FirstOrDefault().Id + 1 : 1; db.UserSkins.Add(new UserSkin(user.UserId, Id) { Id = itemId }); db.SaveChanges(); } } return(Json(new { Sucesso = retorno }, JsonRequestBehavior.AllowGet)); }