public ActionResult AddCharacter() { TempData["Error"] = null; try { if (Request.Params.AllKeys.Contains("code")) { var code = Request.Params["code"]; var authResponse = EVEProvider.GetAccessToken(code); if (authResponse != null) { var character = EVEProvider.VerifyCharacter(authResponse.access_token); if (Repository.Characters.Any(x => !x.IsDeleted && x.Name == character.CharacterName)) { TempData["Error"] = "Персонаж уже зарегестрирован!"; return(RedirectToAction("Index", "User", new { area = "admin" })); } var characterExtend = EVEProvider.GetCharacter(character.CharacterID); var corp = Repository.Corporations.FirstOrDefault(x => x.EveID == characterExtend.corporation_id); if (corp == null) { TempData["Error"] = "Для Вашей корпорации нет разрешения на доступ!"; return(RedirectToAction("Index", "User", new { area = "admin" })); } var token = new Token { AccessToken = authResponse.access_token, TokenType = authResponse.token_type, ExpiresIn = authResponse.expires_in, RefreshToken = authResponse.refresh_token, Expires = DateTime.Now.AddSeconds(authResponse.expires_in - 1) }; Repository.CreateToken(token); var result = Repository.CreateCharacter(new Character { Name = character.CharacterName, EveID = character.CharacterID, UserID = CurrentUser.Id, TokenID = token.Id, CorporationID = corp.Id, IsMain = true, Ship = null, IsOnline = false }); if (result.IsError) { TempData["Error"] = result.Message; } } } } catch (Exception ex) { TempData["Error"] = ex.Message; } return(RedirectToAction("Index", "User", new { area = "admin" })); }
public ActionResult Authorize() { return(Redirect(EVEProvider.Authorize(HostName + "/Admin/User/AddCharacter"))); }