Exemplo n.º 1
0
        public ActionResult Complete(string thingID)
        {
            if (AccountHelper.CurrentUser.Threads.All(t => t.ThingID != thingID))
            {
                return RedirectToAction("Me", "Account");
            }

            var cpm = new CompletePiFModel
                          {
                              ThingID =
                                  AccountHelper.CurrentUser.Threads.Single(t => t.ThingID == thingID)
                                               .ThingID
                          };

            ViewData["ThreadUsers"] = cpm.ThreadUserList(cpm.ThingID);

            var db = new PiFDbDataContext();
            SessionCompleteGamesRepository.Clear();
            foreach (var tg in AccountHelper.CurrentUser.Threads.Single(t => t.ThingID == thingID).ThreadGames)
            {
                User user = db.Users.SingleOrDefault(u => u.id == tg.WinnerID);
                SessionCompleteGamesRepository.Insert(
                    new CompletePiFModel(tg, user != null ? user.Username : string.Empty));
            }

            return View(cpm);
        }
 public static void Delete(CompletePiFModel game)
 {
     CompletePiFModel target = One(p => p.ID == game.ID);
     if (target != null)
     {
         All().Remove(target);
     }
 }
        public ActionResult CggDelete([DataSourceRequest] DataSourceRequest request, CompletePiFModel game)
        {
            // Delete the record
            SessionCompleteGamesRepository.Delete(game);

            // Rebind the grid
            return Json(ModelState.ToDataSourceResult());
        }
Exemplo n.º 4
0
        public ActionResult Complete(CompletePiFModel model)
        {
            Thread thread = AccountHelper.CurrentUser.Threads.SingleOrDefault(t => t.ThingID == model.ThingID);

            if (thread == null)
            {
                return RedirectToAction("Me", "Account");
            }

            if (ModelState.IsValid)
            {
                var db = new PiFDbDataContext();
                thread = db.Threads.Single(t => t.ThingID == model.ThingID);
                db.ThreadGames.DeleteAllOnSubmit(thread.ThreadGames);
                var newUsers = new List<User>();
                foreach (var pifgame in SessionCompleteGamesRepository.All())
                {
                    for (int i = 1; i <= pifgame.Count; i++)
                    {
                        if (pifgame.WinnerUserName == string.Empty)
                        {
                            ModelState.AddModelError("Winner", "All entries must have a winner selected");
                            break;
                        }

                        User user = db.Users.SingleOrDefault(u => u.Username == pifgame.WinnerUserName);
                        if (user == null && newUsers.Exists(u => u.Username == pifgame.WinnerUserName))
                        {
                            user = newUsers.Single(u => u.Username == pifgame.WinnerUserName);
                        }

                        if (user == null)
                        {
                            user = new User { Username = pifgame.WinnerUserName, RecordCreatedDate = DateTime.UtcNow };
                            db.Users.InsertOnSubmit(user);
                            newUsers.Add(user);
                        }

                        var tg = new ThreadGame { ThreadID = thread.id, GameID = pifgame.ID, User = user };
                        db.ThreadGames.InsertOnSubmit(tg);
                    }

                    if (!ModelState.IsValid)
                    {
                        break;
                    }
                }

                if (ModelState.IsValid)
                {
                    db.SubmitChanges();
                    return RedirectToAction("View", "PiF", new { thread.ThingID });
                }
            }

            return View(model);
        }
        public ActionResult CggCreate([DataSourceRequest] DataSourceRequest request, CompletePiFModel game)
        {
            // FIXME: add code to verify user exists on reddit if they are not in our DB
            // Rebind the grid
            if (game != null && ModelState.IsValid)
            {
                SessionCompleteGamesRepository.Insert(game);
            }

            return Json(new[] { game }.ToDataSourceResult(request, ModelState));
        }
 /// <summary>Insert a game into the table.</summary>
 /// <param name="game">The game object to insert.</param>
 public static void Insert(CompletePiFModel game)
 {
     All().Insert(0, game);
 }
 public ActionResult CggUpdate([DataSourceRequest] DataSourceRequest request, CompletePiFModel game)
 {
     // CompletePiFModel game = SessionCompleteGamesRepository.One(p => p.ID == id);
     TryUpdateModel(game);
     return Json(ModelState.ToDataSourceResult());
 }