示例#1
0
        private async Task <List <Product> > GetCommentsAsync(string token, ICollection <Product> list)
        {
            try
            {
                using var client = new HttpClient();
                client.SetBearerToken(token);

                var results = new List <Product>();

                foreach (var thread in list)
                {
                    string subreddit   = thread.Subreddit;
                    var    commentLink = $"https://oauth.reddit.com/r/{subreddit}/comments.json?limit=5";

                    HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, commentLink);
                    request.Headers.UserAgent.ParseAdd("Reddit API" + token);
                    HttpResponseMessage response = await client.SendAsync(request);

                    var             resString          = response.Content.ReadAsStringAsync().Result;
                    ListingComments deserializedReddit = JsonConvert.DeserializeObject <ListingComments>(resString);

                    ICollection <Comments> coment = new List <Comments>();
                    var th = new Product();
                    th.Title = thread.Title.ToString();

                    foreach (var comment in deserializedReddit.ListingData.Threads)
                    {
                        var com = new Comments();
                        com.Comment = comment.Data.Body;

                        coment.Add(com);
                    }
                    th.Comments = coment;
                    results.Add(th);
                }
                return(results);
            }
            catch (Exception)
            {
                _logger.LogCritical("Failed To Return Comments From Reddit");
                throw;
            }
        }
示例#2
0
        public List <ListingComments> GetCurrentListingMessages(Hashtable listingsCriteria)
        {
            var listingComments = new List <ListingComments>();
            var _dt             = GetListingSpecificMessages(Convert.ToString(listingsCriteria["ID"]), Convert.ToString(listingsCriteria["UserID"]));

            if (_dt.Rows.Count > 0)
            {
                foreach (DataRow dr in _dt.Rows)
                {
                    var comments = new ListingComments();
                    comments.CommentID        = Convert.ToInt64(dr["CommentID"]);
                    comments.ListingId        = Convert.ToInt64(dr["ListingId"]);
                    comments.ListingName      = Convert.ToString(dr["ListingName"]);
                    comments.ImagePath        = Convert.ToString(dr["ImagePath"]);
                    comments.MessageFrom      = Convert.ToString(dr["MessageFrom"]);
                    comments.MessageTimeStamp = Convert.ToString(dr["MessageTimeStamp"]);
                    comments.MessageText      = Convert.ToString(dr["MessageText"]);
                    comments.FromID           = Convert.ToInt64(dr["FromID"]);
                    var _repliedDt = GetUserRepliedListingSpecificMessages(comments.ListingId, comments.FromID, comments.CommentID);
                    if (_repliedDt.Rows.Count > 0)
                    {
                        var replComments = new List <ListingComments>();
                        foreach (DataRow replidDr in _repliedDt.Rows)
                        {
                            var repliedComments = new ListingComments();
                            repliedComments.CommentID        = Convert.ToInt64(dr["CommentID"]);
                            repliedComments.ListingId        = Convert.ToInt64(replidDr["ListingId"]);
                            repliedComments.ListingName      = Convert.ToString(replidDr["ListingName"]);
                            repliedComments.ImagePath        = Convert.ToString(replidDr["ImagePath"]);
                            repliedComments.MessageFrom      = Convert.ToString(replidDr["MessageFrom"]);
                            repliedComments.MessageTimeStamp = Convert.ToString(replidDr["MessageTimeStamp"]);
                            repliedComments.MessageText      = Convert.ToString(replidDr["MessageText"]);
                            repliedComments.FromID           = Convert.ToInt64(replidDr["FromID"]);
                            replComments.Add(repliedComments);
                        }
                        comments.MessageCount    = _repliedDt.Rows.Count;           // setting outer message count for displaying number of comments of logged in user.
                        comments.RepliedComments = replComments;
                    }
                    listingComments.Add(comments);
                }
            }
            return(listingComments);
        }