public ActionResult Edit(GetGameDTO editedGame, string url) { if (!Session["Role"].Equals("Admin")) { return RedirectToAction("Index", "Home"); } try { Mapper.CreateMap<SetGameDTO, GetGameDTO>(); // TODO: Add update logic here var client = new RestClient(editedGame.URL); var request = new RestRequest(Method.PUT); var apiKey = Session["ApiKey"]; var UserId = Session["UserId"]; request.AddHeader("xcmps383authenticationkey", apiKey.ToString()); request.AddHeader("xcmps383authenticationid", UserId.ToString()); request.RequestFormat = DataFormat.Json; SetGameDTO sentGame = new SetGameDTO(); sentGame.GameName = editedGame.GameName; sentGame.Genres = new List<SetGenreDTO>(); foreach (var genre in editedGame.Genres) { sentGame.Genres.Add(new SetGenreDTO() { Name = genre.Name }); } sentGame.InventoryStock = editedGame.InventoryStock; sentGame.Price = editedGame.Price; sentGame.ReleaseDate = editedGame.ReleaseDate; sentGame.Tags = new List<SetTagDTO>(); foreach (var tag in editedGame.Tags) { sentGame.Tags.Add(new SetTagDTO() { Name = tag.Name }); } request.AddBody(sentGame); var queryResult = client.Execute(request); statusCodeCheck(queryResult); var redirectUrl = new UrlHelper(Request.RequestContext).Action("Index", "Game"); if (queryResult.StatusCode != HttpStatusCode.OK) { redirectUrl = new UrlHelper(Request.RequestContext).Action("Edit/"+editedGame.Id, "Game"); return Json(new { Url = redirectUrl }); } else if (queryResult.StatusCode == HttpStatusCode.Forbidden) { redirectUrl = new UrlHelper(Request.RequestContext).Action("Login", "User"); return Json(new { Url = redirectUrl }); } redirectUrl = new UrlHelper(Request.RequestContext).Action("Index", "Game"); return Json(new { Url = redirectUrl }); } catch { var redirectUrl = new UrlHelper(Request.RequestContext).Action("Edit/"+editedGame.Id, "Game"); return Json(new { Url = redirectUrl }); } }
public ActionResult Edit(int id) { if (!Session["Role"].Equals("Admin")) { return RedirectToAction("Index", "Home"); } var request = new RestRequest("api/Games/" + id, Method.GET); var apiKey = Session["ApiKey"]; var UserId = Session["UserId"]; request.AddHeader("xcmps383authenticationkey", apiKey.ToString()); request.AddHeader("xcmps383authenticationid", UserId.ToString()); var queryResult = client.Execute(request); List<GetGenreDTO> genres = new List<GetGenreDTO>(); List<GetTagDTO> tags = new List<GetTagDTO>(); genres = getGenres(); tags = getTags(); GetGameDTO game = new GetGameDTO(); statusCodeCheck(queryResult); if (queryResult.StatusCode == HttpStatusCode.OK) { RestSharp.Deserializers.JsonDeserializer deserial = new JsonDeserializer(); game = deserial.Deserialize<GetGameDTO>(queryResult); foreach (GetTagDTO thing in tags) { foreach (GetTagDTO compared in game.Tags) { if (thing.Name != null) { if (thing.Name.Equals(compared.Name)) { thing.check = true; } } } } foreach (GetGenreDTO thing in genres) { foreach (GetGenreDTO compared in game.Genres) { if (thing.Name != null) { if (thing.Name.Equals(compared.Name)) { thing.check = true; } } } } } else if (queryResult.StatusCode == HttpStatusCode.Forbidden) { return RedirectToAction("Login", "User"); } game.Id = parseId(game.URL); ViewBag.genres = genres; ViewBag.tags = tags; return View(game); }