public ActionResult Create(SetGameDTO createGame) { if (!Session["Role"].Equals("Admin")) { return RedirectToAction("Index", "Home"); } var request = new RestRequest("api/Games", Method.POST); var apiKey = Session["ApiKey"]; var UserId = Session["UserId"]; request.AddHeader("xcmps383authenticationkey", apiKey.ToString()); request.AddHeader("xcmps383authenticationid", UserId.ToString()); request.RequestFormat = DataFormat.Json; request.AddBody(createGame); var queryResult = client.Execute(request); statusCodeCheck(queryResult); var redirectUrl = new UrlHelper(Request.RequestContext).Action("Create", "Game"); if (queryResult.StatusCode != HttpStatusCode.Created) { redirectUrl = new UrlHelper(Request.RequestContext).Action("Create", "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 }); }
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 }); } }