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);
        }