예제 #1
0
 public RedditService(RedditRepository redditRepository, RedditViewModel redditViewModel)
 {
     this.redditRepository   = redditRepository;
     this.redditViewModel    = redditViewModel;
     redditViewModel.allPost = AllPost();
     redditViewModel.Top10();
     redditViewModel.OtherPosts();
 }
        public Task <IRedditAccessToken> GetRedditAccessTokenAsync(string clientId, string clientSecret, string code, Uri redirectUri)
        {
            if (string.IsNullOrWhiteSpace(clientId))
            {
                throw new ArgumentNullException(nameof(clientId));
            }
            if (string.IsNullOrWhiteSpace(clientSecret))
            {
                throw new ArgumentNullException(nameof(clientSecret));
            }
            if (string.IsNullOrWhiteSpace(code))
            {
                throw new ArgumentNullException(nameof(code));
            }
            if (redirectUri == null)
            {
                throw new ArgumentNullException(nameof(redirectUri));
            }

            return(Task.Run <IRedditAccessToken>(async() =>
            {
                IDictionary <string, string> formFields = new Dictionary <string, string>
                {
                    { "grant_type", "authorization_code" },
                    { "code", code },
                    { "redirect_uri", redirectUri.AbsoluteUri }
                };

                IRedditResponse <RedditAccessToken> redditResponse = await RedditRepository.PostAsync <RedditAccessToken>(
                    new Uri("https://www.reddit.com/api/v1/access_token"),
                    "Basic",
                    Convert.ToBase64String(Encoding.ASCII.GetBytes($"{clientId}:{clientSecret}")),
                    formFields);

                RedditAccessToken redditAccessToken = redditResponse.Data;
                if (string.IsNullOrWhiteSpace(redditAccessToken.Error))
                {
                    return redditAccessToken;
                }
                throw new Exception($"Unable to get the access token from Reddit: {redditAccessToken.Error}");
            }));
        }
예제 #3
0
 public RedditService(RedditRepository repo)
 {
     this.repo = repo;
 }
예제 #4
0
 public HomeController(RedditRepository redditRepository)
 {
     RedditRepository = redditRepository;
 }
예제 #5
0
 public RedditService(RedditRepository redditRepository)
 {
     this.redditRepository = redditRepository;
 }
 public RedditController(RedditRepository redditRepository)
 {
     this.redditRepository = redditRepository;
 }