예제 #1
0
        public async Task <LoginData> LoginWithToken(string clientId, string clientSecret, string code, string redirect, string requestDomain, string apiDomain)
        {
            var token = await Client.RequestAccessToken(clientId, clientSecret, code, redirect, requestDomain);

            var client = Client.BasicOAuth(token.AccessToken, apiDomain);
            var info   = await client.ExecuteAsync(client.AuthenticatedUser.GetInfo());

            var username = info.Data.Login;

            //Does this user exist?


            var account = await _accounts.Get(apiDomain, username);

            var exists = account != null;

            account = account ?? new Account {
                Username = username
            };
            account.OAuth     = token.AccessToken;
            account.AvatarUrl = info.Data.AvatarUrl;
            account.Domain    = apiDomain;
            account.WebDomain = requestDomain;
            client.Username   = username;
            await _accounts.Save(account);

            return(new LoginData {
                Client = client, Account = account
            });
        }
예제 #2
0
        public async Task LoginWithToken(string clientId, string clientSecret, string code, string redirect, string requestDomain, string apiDomain)
        {
            var oauthRequest = new Octokit.OauthTokenRequest(clientId, clientSecret, code)
            {
                RedirectUri = new Uri(redirect)
            };

            var client = new Octokit.GitHubClient(OctokitClientFactory.UserAgent);
            var token  = await client.Oauth.CreateAccessToken(oauthRequest);

            var credentials = new Octokit.Credentials(token.AccessToken);

            client = OctokitClientFactory.Create(new Uri(apiDomain), credentials);

            var user = await client.User.Current();

            var account = await _accountsService.Get(apiDomain, user.Login);

            account = account ?? new Account {
                Username = user.Login
            };
            account.OAuth     = token.AccessToken;
            account.AvatarUrl = user.AvatarUrl;
            account.Domain    = apiDomain;
            account.WebDomain = requestDomain;

            await _accountsService.Save(account);

            await _applicationService.LoginAccount(account);
        }
예제 #3
0
        public async Task <Account> GetDefaultAccount()
        {
            string id;

            if (!_defaultValueService.TryGet("DEFAULT_ACCOUNT", out id))
            {
                return(null);
            }
            return(await _accountsService.Get(id));
        }
예제 #4
0
        public async Task <IActionResult> Get(int key)
        {
            _logger.LogInformation($"Get method called for account id:{key}");
            var account = await _accountsService.Get(key);

            return(Ok(account));
        }
예제 #5
0
        public CommentsAndUserResponse AllCommentsForEntityIdAndType(string entityId, int type, string userId)
        {
            List <Comment> comments = null;

            DataProvider.ExecuteCmd(GetConnection, "dbo.Comments_AccountsSelectByEntityId"
                                    , inputParamMapper : delegate(SqlParameterCollection paramCollection)
            {
                paramCollection.AddWithValue("@EntityId", entityId);
                paramCollection.AddWithValue("@TypeId", type);
            }
                                    , map : delegate(IDataReader reader, short set)
            {
                Comment com = MapCommentUser(reader);
                if (comments == null)
                {
                    comments = new List <Comment>();
                }

                comments.Add(com);
            });

            return(new CommentsAndUserResponse
            {
                CurrentUser = _accountService.Get(userId),
                Comments = comments
            });
        }
        public HttpResponseMessage Get()
        {
            ItemResponse <Account> response = new ItemResponse <Account>();
            string userId = _userService.GetCurrentUserId();

            response.Item = _accountsService.Get(userId);

            return(Request.CreateResponse(HttpStatusCode.OK, response));
        }
예제 #7
0
        public async Task <ActionResult <GetAccountResponseViewModel> > Get()
        {
            GetAccountResponseViewModel getAccountResponseViewModel = await _accountsService.Get(_account.Id);

            return(Ok(getAccountResponseViewModel));
        }