Ejemplo n.º 1
0
        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" }));
        }
Ejemplo n.º 2
0
 public ActionResult Authorize()
 {
     return(Redirect(EVEProvider.Authorize(HostName + "/Admin/User/AddCharacter")));
 }