Exemple #1
0
        public async Task <WildApricotToken> SetTokenAsync(WildApricotToken respToken, bool updateToken)
        {
            if (updateToken)
            {
                respToken.AccessToken  = respToken.AccessToken;
                respToken.TokenExpires = respToken.TokenExpires;
                await _context.SaveChangesAsync();
            }
            else
            {
                try
                {
                    _context.WaTokens.Add(respToken);

                    await _context.SaveChangesAsync();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }

            return(respToken);
        }
Exemple #2
0
        public async Task <WildApricotToken> GetTokenAsync()
        {
            var updateToken = false;
            var token       = await _context.WaTokens.SingleOrDefaultAsync();


            if (token != null)
            {
                var tokenExpires = token?.TokenExpires ?? DateTime.Now;
                if (DateTime.Compare(tokenExpires, DateTime.Now.AddMinutes(3)) > 0)
                {
                    return(token);
                }

                updateToken = true;
            }


            var tokenResponse = await WildApricotOps.GenerateNewAccessToken(_apiKey);

            var newToken = new WildApricotToken
            {
                AccessToken  = tokenResponse.access_token,
                TokenExpires = DateTime.Now.AddSeconds(tokenResponse.expires_in)
            };

            return(await SetTokenAsync(newToken, updateToken));
        }
Exemple #3
0
        public static async Task <HttpResponseMessage> GetRequest(string apiResource, WildApricotToken token, List <string> queryList = null)
        {
            var client = new HttpClient();

            client.DefaultRequestHeaders.Accept.Clear();

            client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token.AccessToken);

            var apiAddr = new UriBuilder(WildApricotApiUrl + apiResource);

            if (queryList != null)
            {
                queryList.ForEach(query =>
                {
                    if (apiAddr.Query != null && apiAddr.Query.Length > 1)
                    {
                        apiAddr.Query = apiAddr.Query.Substring(1) + "&" + query;
                    }
                    else
                    {
                        apiAddr.Query = query;
                    }
                });
            }

            try
            {
                return(await client.GetAsync(apiAddr.ToString()));
            }

            catch (Exception e)
            {
                var message = e.Message + " " + e.InnerException;
                throw new Exception(message);
            }
        }
Exemple #4
0
        public static async Task <HttpResponseMessage> DeleteRequest(string apiResource, WildApricotToken token)
        {
            var client = new HttpClient();

            client.DefaultRequestHeaders.Accept.Clear();

            client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token.AccessToken);

            var apiAddr = new UriBuilder(WildApricotApiUrl + apiResource);

            try
            {
                return(await client.DeleteAsync(apiAddr.ToString()));
            }

            catch (Exception e)
            {
                var message = e.Message + " " + e.InnerException;
                throw new Exception(message);
            }
        }