public ActionResult Edit(Contestant_VM vm) { if (ModelState.IsValid) { if (vm.PhotoFile != null) { vm.PhotoUrl = UploadFile(vm.PhotoFile); } var obj = vm.VM_To_Domain(); _Service.UpdateContestant(obj); TempData["Message"] = new string[] { "success", "Contestant", "Update Succesfully." }; return(RedirectToAction("Index")); } LoadDDL(); TempData["Message"] = new string[] { "error", "Contestant", "Validation Error" }; ViewBag.ActionName = "Edit"; return(View("Create", vm)); }
public UpdateResponse Post([FromBody] UpdateRequest request) { var response = new UpdateResponse(); if (request == null) { response.IsError = true; response.ErrorMessage = "Invalid request"; return(response); } if (!contestantService.ContestantExists(request.Token)) { response.IsError = true; response.ErrorMessage = "You are not a registered player. Register to play at /register"; return(response); } var contestant = contestantService.GetContestantByToken(request.Token); if (contestant == null) { response.IsError = true; response.ErrorMessage = "You are not a registered player. Register to play at /register"; return(response); } var timeSinceLastUpdate = timeService.Now() - contestant.LastSeen; if (timeSinceLastUpdate.TotalSeconds < UpdateRateLimitInSeconds) { response.IsError = true; response.ErrorMessage = $"The rate limit requires you call this endpoint no more than once every {UpdateRateLimitInSeconds} seconds."; return(response); } // at this point we are done with validation contestant = new Contestant ( contestant.Name, contestant.Token, contestant.LastSeen, request.GenerationsComputed, contestant.StartedGameAt, contestant.EndedGameAt, request.ResultBoard ); var gameStatus = gameService.GetGameStatus(); response.GameState = gameStatus.IsStarted ? GameState.InProgress : GameState.NotStarted; if (gameStatus.IsGameOver) { response.GameState = GameState.Over; } if (gameStatus.IsStarted) { contestant = StartContestantIfNotStarted(contestant); response.SeedBoard = gameStatus.SeedBoard; response.GenerationsToCompute = gameStatus.NumberGenerations; } response.IsError = false; contestantService.UpdateContestant(contestant); return(response); }