示例#1
0
        private async Task SetLastFmClients()
        {
            if (string.IsNullOrEmpty(LastFmUsername))
            {
                return;
            }

            try
            {
                await _lastFmApiClientService.SetClients(LastFmUsername, LastFmApiSessionKey);

                if (!_lastFmApiClientService.UserApiClient.Authorized)
                {
                    var url = _lastFmApiClientService.UserApiClient.AuthUrl;
                    _browserService.Open(url);
                    await _lastFmApiClientService.AuthorizeUserClient();
                }
                LastFmApiSessionKey = _lastFmApiClientService.UserApiClient.SessionKey;
            }
            catch (LastFmApiException ex)
            {
                if (ex.ErrorCode == ErrorCode.UserNotLoggedIn)
                {
                    _messenger.Send(new ShowDialogMessage(_messenger, MessageType.Error, "Last.FM Error", ex.Message));
                    LastFmUsername      = string.Empty;
                    LastFmApiSessionKey = null;
                    return;
                }

                throw;
            }
        }
示例#2
0
        public async Task <ActionResult> Authorize()
        {
            await _lastFm.AuthorizeUserClient(1);

            if (!_lastFm.UserApiClient.Authorized)
            {
                return(PartialView("_LastFmAuth", new LastFmAuthViewModel(_lastFm.UserApiClient.AuthUrl, true)));
            }

            var sessionKey = _lastFm.UserApiClient.SessionKey;

            Response.SetCookie(
                new HttpCookie("SK", sessionKey)
            {
                Expires  = DateTime.Now.AddDays(30),
                HttpOnly = true,
                Secure   = true
            });
            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }