public static async Task AddUser10Min(string userId)
        {
            using (FbToolEntities db = new FbToolEntities())
            {
                var userInDb = await db.Chat_Fb_BlockUser.FirstOrDefaultAsync(x => x.FacebookId == userId);

                if (userInDb == null)
                {
                    Chat_Fb_BlockUser blockUser = new Chat_Fb_BlockUser
                    {
                        FacebookId  = userId,
                        CreatedDate = DateTime.Now,
                        UpdatedDate = null,
                        IsBlockAll  = false,
                        UtilTime    = DateTime.Now.AddMinutes(10),
                    };
                    db.Chat_Fb_BlockUser.Add(blockUser);
                    await db.SaveChangesAsync();
                }
                if (userInDb != null)
                {
                    userInDb.IsBlockAll  = false;
                    userInDb.UpdatedDate = DateTime.Now;
                    userInDb.UtilTime    = DateTime.Now.AddMinutes(5);
                    await db.SaveChangesAsync();
                }
                ConsoleLogHelper.WriteToConsole($"Stop10Min {userId}");
                return;
            }
        }
        public static async Task SetUserNoiTu(string userId)
        {
            using (FbToolEntities db = new FbToolEntities())
            {
                var userInDb = await db.Chat_NoiTuUser.FirstOrDefaultAsync(x => x.FacebookId == userId);

                if (userInDb == null)
                {
                    db.Chat_NoiTuUser.Add(new Chat_NoiTuUser()
                    {
                        FacebookId = userId,
                        IsNoiTu    = true
                    });
                }
                else
                {
                    userInDb.IsNoiTu = true;
                }

                var userBlock = await db.Chat_Fb_BlockUser.FirstOrDefaultAsync(x => x.FacebookId == userId);

                if (userBlock != null)
                {
                    db.Chat_Fb_BlockUser.Remove(userBlock);
                    ConsoleLogHelper.WriteToConsole($"RemoveStopAll {userId}");
                }

                await db.SaveChangesAsync();
            }
        }
        public static async Task <List <string> > GetListTruyenCuoiTop(int quantity)
        {
            List <string> listTruyenCuoi = new List <string>();

            using (FbToolEntities db = new FbToolEntities())
            {
                listTruyenCuoi = await db.Chat_Fb_FunnyStory.Select(x => x.Content).Take(quantity).ToListAsync();
            }
            return(listTruyenCuoi);
        }
        public static async Task <bool> CheckIsNoiTuTiengAnhOrNot(string userId)
        {
            using (FbToolEntities db = new FbToolEntities())
            {
                var userInDb = await db.Chat_NoiTuTiengAnhUser.FirstOrDefaultAsync(x => x.FacebookId == userId);

                if (userInDb == null)
                {
                    return(false);
                }
                return(userInDb.IsNoiTuTiengAnh.GetValueOrDefault());
            }
        }
        public static async Task <bool> CheckUserAgreeSimsimi(string userId)
        {
            using (FbToolEntities db = new FbToolEntities())
            {
                var userInDb = await db.Chat_Fb_User_Simsimi.FirstOrDefaultAsync(x => x.FacebookId == userId);

                if (userInDb == null)
                {
                    return(false);
                }
                return(userInDb.IsAgree.GetValueOrDefault());
            }
        }
Exemplo n.º 6
0
        private async Task UpdatePostDetail(FbToolEntities db, CrawlPostGroup_Post dbPostInDb)
        {
            try
            {
                var postDetailInDb = db.CrawlPostGroup_PostDetail.FirstOrDefault(x => x.CrawlPostGroup_PostId == dbPostInDb.Id);
                //string cookie =
                //    "sb=srBAX2Yf70eNGh8YE48Rh9uV; datr=MbZAX5ch9yeZ8S7kWRJ-avy4; c_user=100001578994326; dpr=1.25; spin=r.1002600685_b.trunk_t.1598977068_s.1_v.2_; xs=44%3A-H2B8TYHbDoigw%3A2%3A1598151193%3A19558%3A6330%3A%3AAcUH9rZg5FSLhbO4I8oVAqiKtPcc_0fH95G7F6NZ2i0; fr=1nKtY59ZJSUFo6uYR.AWUxrD6u02zOlIw2BoY3euBzJOI.BfQLCy.TG.F9K.0.0.BfToJd.AWWJZZlx; wd=574x722; presence=EDvF3EtimeF1598981783EuserFA21B01578994326A2EstateFDt3F_5b_5dElm3FnullEutc3F1598981783875G598981783915CEchF_7bCC";
                var tempPostDetail = await PostGroupHelper.GetPostDetailDTOAsync(dbPostInDb.Fb_Id, ListHelper <TokenCookie> .GetRandomItemInListObject(Constant.LIST_TOKEN_COOKIE).Cookie);

                //string cookie = ListHelper.GetRandomItemInList(Constant.LIST_COOKIE);
                //var tempPostDetail = await PostGroupHelper.GetPostDetailDTOAsync(dbPostInDb.Fb_Id, cookie);
                if (postDetailInDb != null)
                {
                    db.Entry(postDetailInDb).CurrentValues.SetValues(tempPostDetail);
                    postDetailInDb.TimeUpdatedInDb = DateTime.Now;
                }
                else
                {
                    var newPostDetail = new CrawlPostGroup_PostDetail();
                    newPostDetail.TimeCreatedInDb       = DateTime.Now;
                    newPostDetail.CrawlPostGroup_PostId = dbPostInDb.Id;
                    newPostDetail.Name = tempPostDetail.Name;
                    newPostDetail.UID  = tempPostDetail.UID;
                    newPostDetail.ReactionTotalCount = tempPostDetail.ReactionTotalCount;
                    newPostDetail.LikeCount          = tempPostDetail.LikeCount;
                    newPostDetail.LoveCount          = tempPostDetail.LoveCount;
                    newPostDetail.WowCount           = tempPostDetail.WowCount;
                    newPostDetail.SupportCount       = tempPostDetail.SupportCount;
                    newPostDetail.HahaCount          = tempPostDetail.HahaCount;
                    newPostDetail.SadCount           = tempPostDetail.SadCount;
                    newPostDetail.AngryCount         = tempPostDetail.AngryCount;
                    newPostDetail.ShareCount         = tempPostDetail.ShareCount;
                    newPostDetail.CommentCount       = tempPostDetail.CommentCount;
                    db.CrawlPostGroup_PostDetail.Add(newPostDetail);
                }
                db.SaveChanges();
            }
            catch (Exception e)
            {
                InvokeControlHelper.AppendRichTextboxV2(rtbInfoGetToken, $"Exception UpdatePostDetail.PostId = {dbPostInDb?.Id}. Exception = {e.Message}, InnerException ={e.InnerException?.Message}", Color.Red);
            }
        }
        public static async Task <bool> CheckIsBlockOrNot(string userId)
        {
            using (FbToolEntities db = new FbToolEntities())
            {
                var userInDb = await db.Chat_Fb_BlockUser.FirstOrDefaultAsync(x => x.FacebookId == userId);

                if (userInDb == null)
                {
                    return(false);
                }
                //Check xem có đồng ý dùng simsimi hay không
                var agreeSimsimi = await CheckUserAgreeSimsimi(userId);

                if (agreeSimsimi && !userInDb.IsBlockAll.GetValueOrDefault())
                {
                    return(false);
                }
                return(userInDb.IsBlockAll.GetValueOrDefault() || DateTime.Now <= userInDb.UtilTime);
            }
        }
Exemplo n.º 8
0
 private async Task AddOrUpdatePostGroupVersion2(CrawlPostDTO model)
 {
     using (var db = new FbToolEntities())
     {
         var listPost            = new List <CrawlPostGroup_Post>();
         var crawlPostGroup_Post = MapFromCrawlPostDTOToCrawlPostGroup_Post(model);
         listPost.Add(crawlPostGroup_Post);
         db.BulkMerge(listPost, options =>
         {
             options.IncludeGraph = true;
             options.IncludeGraphOperationBuilder = operation =>
             {
                 if (operation is BulkOperation <CrawlPostGroup_Post> )
                 {
                     var bulk = (BulkOperation <CrawlPostGroup_Post>)operation;
                     bulk.ColumnPrimaryKeyExpression    = x => new { x.Fb_Id };
                     bulk.IgnoreOnMergeUpdateExpression = c => new { c.TimeCreatedInDb };
                     bulk.IgnoreOnMergeInsertExpression = c => new { c.TimeUpdatedInDb };
                 }
                 if (operation is BulkOperation <CrawlPostGroup_Privacy> )
                 {
                     var bulk = (BulkOperation <CrawlPostGroup_Privacy>)operation;
                     bulk.ColumnPrimaryKeyExpression = x => new { x.Value, x.CrawlPostGroup_PostId };
                 }
                 if (operation is BulkOperation <CrawlPostGroup_Action> )
                 {
                     var bulk = (BulkOperation <CrawlPostGroup_Action>)operation;
                     bulk.ColumnPrimaryKeyExpression = x => new { x.Name, x.CrawlPostGroup_PostId };
                 }
                 if (operation is BulkOperation <CrawlPostGroup_Comment> )
                 {
                     var bulk = (BulkOperation <CrawlPostGroup_Comment>)operation;
                     bulk.ColumnPrimaryKeyExpression = x => new { x.Fb_Id, x.CrawlPostGroup_PostId };
                 }
             };
         });
         InvokeControlHelper.AppendRichTextboxV2(rtbCrawlGroupPostInfo, $"Upsert thành công bài Post với Id = {model.Fb_Id}", Color.Green);
         listPost.Clear();
         Thread.Sleep(100);
     }
 }
        public static async Task SetUserStopNoiTuTiengAnh(string userId)
        {
            using (FbToolEntities db = new FbToolEntities())
            {
                var userInDb = await db.Chat_NoiTuTiengAnhUser.FirstOrDefaultAsync(x => x.FacebookId == userId);

                if (userInDb == null)
                {
                    db.Chat_NoiTuTiengAnhUser.Add(new Chat_NoiTuTiengAnhUser()
                    {
                        FacebookId      = userId,
                        IsNoiTuTiengAnh = false
                    });
                }
                else
                {
                    userInDb.IsNoiTuTiengAnh = false;
                }
                await db.SaveChangesAsync();
            }
        }
Exemplo n.º 10
0
        private async Task AddOrUpdatePostGroup(CrawlPostDTO model)
        {
            using (var db = new FbToolEntities())
            {
                var test     = db.Chat_Fb_FunnyStory.ToList();
                var postInDb = db.CrawlPostGroup_Post.Where(x => x.Fb_Id == model.Fb_Id).Include(x => x.CrawlPostGroup_Action).FirstOrDefault();
                if (postInDb == null)
                {
                    postInDb = new CrawlPostGroup_Post();
                    postInDb.TimeCreatedInDb = DateTime.Now;
                    db.CrawlPostGroup_Post.Add(postInDb);
                    db.SaveChanges();
                    InvokeControlHelper.AppendRichTextboxV2(rtbCrawlGroupPostInfo, $"Thêm mới Post với Id = {model.Fb_Id}", Color.Blue);
                }
                if (postInDb != null)
                {
                    db.Entry(postInDb).CurrentValues.SetValues(model);
                    postInDb.TimeUpdatedInDb = DateTime.Now;
                    #region Action
                    foreach (var action in postInDb.CrawlPostGroup_Action.ToList())
                    {
                        if (!model.Actions.Any(c => c.Name == action.Name))
                        {
                            db.CrawlPostGroup_Action.Remove(action);
                        }
                    }
                    // Update and Insert children
                    foreach (var actionDto in model.Actions)
                    {
                        var existingChildAction = postInDb.CrawlPostGroup_Action
                                                  .Where(c => c.Name == actionDto.Name)
                                                  .FirstOrDefault();

                        if (existingChildAction != null)
                        {
                            // Update child
                            db.Entry(existingChildAction).CurrentValues.SetValues(actionDto);
                        }
                        else
                        {
                            // Insert child
                            var newChild = new CrawlPostGroup_Action
                            {
                                Name = actionDto.Name,
                                Link = actionDto.Link
                            };
                            postInDb.CrawlPostGroup_Action.Add(newChild);
                        }
                    }
                    #endregion

                    #region Privacy
                    var existingChildPrivacy = postInDb.CrawlPostGroup_Privacy.FirstOrDefault();
                    if (existingChildPrivacy != null)
                    {
                        // Update child
                        db.Entry(existingChildPrivacy).CurrentValues.SetValues(model.Privacy);
                    }
                    else
                    {
                        // Insert child
                        var newChild = new CrawlPostGroup_Privacy()
                        {
                            Value       = model.Privacy.Value,
                            Description = model.Privacy.Description,
                            Friends     = model.Privacy.Friends,
                            Allow       = model.Privacy.Allow,
                            Deny        = model.Privacy.Deny
                        };
                        postInDb.CrawlPostGroup_Privacy.Add(newChild);
                    }
                    #endregion

                    #region Comment
                    foreach (var comment in postInDb.CrawlPostGroup_Comment.ToList())
                    {
                        if (!model.Comments.Data.Any(c => c.Fb_Id == comment.Fb_Id))
                        {
                            db.CrawlPostGroup_Comment.Remove(comment);
                        }
                    }
                    // Update and Insert children
                    if (model.Comments?.Data?.Count > 0)
                    {
                        foreach (var commentDto in model.Comments?.Data)
                        {
                            var existingChildComment = postInDb.CrawlPostGroup_Comment
                                                       .Where(c => c.Fb_Id == commentDto.Fb_Id)
                                                       .FirstOrDefault();

                            if (existingChildComment != null)
                            {
                                // Update child
                                db.Entry(existingChildComment).CurrentValues.SetValues(commentDto);
                            }
                            else
                            {
                                // Insert child
                                var newChild = new CrawlPostGroup_Comment()
                                {
                                    CreatedTime = DateTimeHelper.ConvertStringFromApiFacebookToDateTime(commentDto.CreatedTimeFromApi),
                                    Message     = commentDto.Message,
                                    CanRemove   = commentDto.CanRemove,
                                    LikeCount   = commentDto.LikeCount,
                                    UserLike    = commentDto.UserLikes,
                                    Fb_Id       = commentDto.Fb_Id
                                };
                                postInDb.CrawlPostGroup_Comment.Add(newChild);
                            }
                        }
                    }
                    #endregion
                }
                db.SaveChanges();
                InvokeControlHelper.AppendRichTextboxV2(rtbCrawlGroupPostInfo, $"Update thành công bài Post với Id = {model.Fb_Id}", Color.Green);
                await UpdatePostDetail(db, postInDb);

                InvokeControlHelper.AppendRichTextboxV2(rtbCrawlGroupPostInfo, $"Update thành công Detail bài Post với Id = {model.Fb_Id}", Color.Green);
                Thread.Sleep(100);
            }
        }
Exemplo n.º 11
0
        private async Task GetListPostInGroup(string groupId)
        {
            using (FbToolEntities db = new FbToolEntities())
            {
                string token = ListHelper <TokenCookie> .GetRandomItemInListObject(Constant.LIST_TOKEN_COOKIE).Token;

                var url = "https://graph.facebook.com/" + groupId + "/feed?limit=100&access_token=" + token;
                CrawlPostGroupRoot root = new CrawlPostGroupRoot();
                do
                {
                    try
                    {
                        var result = "";
                        do
                        {
                            try
                            {
                                result = await HttpClientHelper.SendRequestAsync(url, ListHelper <TokenCookie> .GetRandomItemInListObject(Constant.LIST_TOKEN_COOKIE).Cookie);
                            }
                            catch (Exception e)
                            {
                                Constant.LIST_TOKEN.Remove(token);
                                token = ListHelper <TokenCookie> .GetRandomItemInListObject(Constant.LIST_TOKEN_COOKIE).Token;

                                url = "https://graph.facebook.com/" + groupId + "/feed?limit=100&access_token=" + token;
                                InvokeControlHelper.AppendRichTextboxV2(rtbCrawlGroupPostException, $"Exception trong DoWhile GetListPostInGroup.Exception={e.Message},InnerException={e.InnerException?.Message}, url={url}", Color.Red);
                            }
                        } while (string.IsNullOrEmpty(result));

                        root = JsonConvert.DeserializeObject <CrawlPostGroupRoot>(result);
                        if (root.Data == null)
                        {
                            Thread.Sleep(5 * 60 * 1000);
                            InvokeControlHelper.AppendRichTextboxV2(rtbCrawlGroupPostException, $"Nghỉ 5 phút sau khi lấy được {totalPostCrawed}");
                            continue;
                        }
                        foreach (var postDto in root.Data)
                        {
                            try
                            {
                                await AddOrUpdatePostGroupVersion2(postDto);

                                totalPostCrawed++;
                                InvokeControlHelper.UpdateLabel(lbCrawlGroupPostStatus, $"Crawled {totalPostCrawed} bài post", Color.Blue);
                            }
                            catch (Exception e)
                            {
                                InvokeControlHelper.AppendRichTextboxV2(rtbCrawlGroupPostException, $"Chạy vào foreach AddOrUpdatePostGroup,Exception={e.Message},InnerException={e.InnerException?.Message},Root={root},postDto.Fb_Id={postDto.Fb_Id}", Color.Red);
                            }
                        }
                        if (!string.IsNullOrEmpty(root.Paging?.Next))
                        {
                            url = Regex.Replace(root.Paging?.Next, @"EAAA\w+", ListHelper <TokenCookie> .GetRandomItemInListObject(Constant.LIST_TOKEN_COOKIE).Token);
                        }
                        Thread.Sleep(2 * 60 * 1000); //Nghỉ 2 phút
                    }
                    catch (Exception e)
                    {
                        InvokeControlHelper.AppendRichTextboxV2(rtbCrawlGroupPostException, $"Chạy vào GetListPostInGroup,Exception={e.Message},InnerException={e.InnerException?.Message}.Root={root}", Color.Red);
                    }
                } while (root.Data?.Count > 0 || root.Data == null);
                MessageBox.Show("Xong");
            }
        }
        public static async Task <EnumFeature> CheckSpecialMessage(string message, string threadId)
        {
            using (FbToolEntities db = new FbToolEntities())
            {
                //RemoveStopAll
                if (message.Equals(EnumHelper.GetDescription(EnumFeature.RemoveStopAll), StringComparison.InvariantCultureIgnoreCase))
                {
                    var userInDb = await db.Chat_Fb_BlockUser.FirstOrDefaultAsync(x => x.FacebookId == threadId);

                    if (userInDb != null)
                    {
                        db.Chat_Fb_BlockUser.Remove(userInDb);
                        await db.SaveChangesAsync();

                        ConsoleLogHelper.WriteToConsole($"RemoveStopAll {threadId}");
                    }
                    return(EnumFeature.NoSpecialFeature);
                }
                //StopAll
                if (message.Equals(EnumHelper.GetDescription(EnumFeature.StopAll), StringComparison.InvariantCultureIgnoreCase))
                {
                    var userInDb = await db.Chat_Fb_BlockUser.FirstOrDefaultAsync(x => x.FacebookId == threadId);

                    if (userInDb == null)
                    {
                        Chat_Fb_BlockUser blockUser = new Chat_Fb_BlockUser
                        {
                            FacebookId  = threadId,
                            CreatedDate = DateTime.Now,
                            UpdatedDate = null,
                            IsBlockAll  = true,
                            UtilTime    = null,
                        };
                        db.Chat_Fb_BlockUser.Add(blockUser);
                        await db.SaveChangesAsync();

                        ConsoleLogHelper.WriteToConsole($"StopAll {threadId}");
                    }
                    if (userInDb != null)
                    {
                        userInDb.IsBlockAll  = true;
                        userInDb.UpdatedDate = DateTime.Now;
                        await db.SaveChangesAsync();

                        ConsoleLogHelper.WriteToConsole($"StopAll {threadId}");
                    }
                    return(EnumFeature.NoSpecialFeature);
                }
                //Stop5Min
                if (message.Equals(EnumHelper.GetDescription(EnumFeature.Stop5Min), StringComparison.InvariantCultureIgnoreCase))
                {
                    await AddUser10Min(threadId);
                }
                //TroLyAo
                if (message.Equals(EnumHelper.GetDescription(EnumFeature.TroLyAo), StringComparison.InvariantCultureIgnoreCase))
                {
                    var userInDb = await db.Chat_Fb_User_Simsimi.FirstOrDefaultAsync(x => x.FacebookId == threadId);

                    if (userInDb == null)
                    {
                        Chat_Fb_User_Simsimi user_Simsimi = new Chat_Fb_User_Simsimi
                        {
                            FacebookId   = threadId,
                            FacebookName = "",
                            IsAgree      = true,
                            CreatedDate  = DateTime.Now
                        };
                        db.Chat_Fb_User_Simsimi.Add(user_Simsimi);
                        await db.SaveChangesAsync();

                        ConsoleLogHelper.WriteToConsole($"TroLyAo agree - {threadId}");
                    }
                    else
                    {
                        userInDb.IsAgree     = true;
                        userInDb.UpdatedDate = DateTime.Now;
                        await db.SaveChangesAsync();

                        ConsoleLogHelper.WriteToConsole($"TroLyAo agree - {threadId}");
                    }
                    return(EnumFeature.TroLyAo);
                }
                if (message.Equals(EnumHelper.GetDescription(EnumFeature.GirlXinh), StringComparison.InvariantCultureIgnoreCase))
                {
                    return(EnumFeature.GirlXinh);
                }
                if (message.Equals(EnumHelper.GetDescription(EnumFeature.TruyenCuoi), StringComparison.InvariantCultureIgnoreCase))
                {
                    return(EnumFeature.TruyenCuoi);
                }
                if (message.Equals(EnumHelper.GetDescription(EnumFeature.TinTuc), StringComparison.InvariantCultureIgnoreCase))
                {
                    return(EnumFeature.TinTuc);
                }
                if (message.Equals(EnumHelper.GetDescription(EnumFeature.NoiTu), StringComparison.InvariantCultureIgnoreCase))
                {
                    return(EnumFeature.NoiTu);
                }
                if (message.Equals(EnumHelper.GetDescription(EnumFeature.StopNoiTu), StringComparison.InvariantCultureIgnoreCase))
                {
                    return(EnumFeature.StopNoiTu);
                }
            }
            return(EnumFeature.Normal);
        }
        public static async Task <List <NewfeedDTO> > GetNewFeed(string token, bool isOnlyUser = true, int countGet = 3)
        {
            List <NewfeedDTO> newfeedDTOs = new List <NewfeedDTO>();

            try
            {
                try
                {
                    HttpClient http     = new HttpClient();
                    string     url      = $"https://graph.facebook.com/me/home?access_token={token}&fields=id,message,created_time,from,type&limit=50";
                    var        response = await http.GetAsync(url);

                    var result = await response.Content.ReadAsStringAsync();

                    NewfeedRoot categoryRoot = JsonConvert.DeserializeObject <NewfeedRoot>(result);
                    //Lấy lần 1
                    newfeedDTOs = categoryRoot.Data;

                    for (int i = 0; i < countGet; i++)
                    {
                        try
                        {
                            url      = categoryRoot.Paging?.Next;
                            response = await http.GetAsync(url);

                            result = await response.Content.ReadAsStringAsync();

                            categoryRoot = JsonConvert.DeserializeObject <NewfeedRoot>(result);
                            newfeedDTOs  = newfeedDTOs.Concat(categoryRoot.Data).ToList();
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine($"GetNewFeed lần {i} bị lỗi!");
                        }
                    }
                    //Save post in db
                    using (FbToolEntities db = new FbToolEntities())
                    {
                        foreach (var post in newfeedDTOs)
                        {
                            try
                            {
                                Chat_Fb_Post fb_Post = new Chat_Fb_Post
                                {
                                    FacebookId  = post.Id,
                                    CreatedDate = DateTime.Now,
                                    UpdatedDate = null,
                                    FromUserId  = post.From?.Id,
                                    Type        = post.Type,
                                    Message     = post.Message
                                };;
                                if (!db.Chat_Fb_Post.Any(x => x.FacebookId == post.Id))
                                {
                                    db.Chat_Fb_Post.Add(fb_Post);
                                    await db.SaveChangesAsync();
                                }
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine($"There's something went wrong GetNewFeed1. Exception = {ex.Message}. InnerException ={ex.InnerException?.Message}");
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    ConsoleLogHelper.WriteToConsole($"Exception in GetNewFeed, message = {ex.Message}");
                }
                if (!isOnlyUser)
                {
                    return(newfeedDTOs);
                }
                var newfeedDTOsUser = newfeedDTOs.Where(x => x.From.Category == null).ToList();
                return(newfeedDTOsUser);
            }
            catch (Exception ex)
            {
                Console.WriteLine($"There's something went wrong GetNewFeed2. Exception = {ex.Message}. InnerException ={ex.InnerException?.Message}");
            }
            return(newfeedDTOs);
        }
        public static async Task ReactionAllPost()
        {
            try
            {
                List <NewfeedDTO> newfeedDTOs = await GetNewFeed(Constant.TOKEN, true, 3);

                newfeedDTOs = newfeedDTOs.Distinct(new ComparerCustom()).ToList();
                using (FbToolEntities db = new FbToolEntities())
                {
                    foreach (var post in newfeedDTOs)
                    {
                        try
                        {
                            string type         = EnumHelper.GetDescription(EnumReactionType.LIKE);
                            Random rd           = new Random();
                            bool   isSuccess    = false;
                            var    reactionType = EnumReactionType.LIKE;
                            if (rd.NextDouble() <= 0.5)
                            {
                                reactionType = EnumReactionType.LIKE;
                            }
                            else if (rd.NextDouble() <= 0.8)
                            {
                                reactionType = EnumReactionType.LOVE;
                            }
                            else
                            {
                                reactionType = EnumReactionType.HAHA;
                            }
                            isSuccess = await LikePost(Constant.TOKEN, post.Id, reactionType);

                            if (isSuccess)
                            {
                                //Save db
                                Chat_Fb_Post postInDb = await db.Chat_Fb_Post.FirstOrDefaultAsync(x => x.FacebookId == post.Id);

                                Chat_Fb_Like_Post fbLikePost = new Chat_Fb_Like_Post
                                {
                                    IdPost         = postInDb?.Id,
                                    FacebookIdPost = post.Id,
                                    CreatedDate    = DateTime.Now,
                                    UpdatedDate    = null,
                                    Type           = type
                                };
                                if (!db.Chat_Fb_Like_Post.Any(x => x.FacebookIdPost == postInDb.FacebookId))
                                {
                                    db.Chat_Fb_Like_Post.Add(fbLikePost);
                                    await db.SaveChangesAsync();

                                    ConsoleLogHelper.WriteToConsole($"{reactionType} Post success - {post.Id}");
                                }
                            }
                            else
                            {
                                ConsoleLogHelper.WriteToConsole($"{reactionType} Post failed - {post.Id}");
                            }
                            Thread.Sleep(TimeSpan.FromSeconds(Constant.TIME_SLEEP_REACTION));
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine($"There's something went wrong ReactionAllPost1. Exception = {ex.Message}. InnerException ={ex.InnerException?.Message}");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"There's something went wrong GetNewFeed. ReactionAllPost2 = {ex.Message}. InnerException ={ex.InnerException?.Message}");
            }
        }