private int UpdateInstagramFeeds(Instagramaccounts instagramAccount)
        {
            var databaseRepository = new DatabaseRepository();

            if (instagramAccount.lastUpdate.AddHours(1) <= DateTime.UtcNow)
            {
                if (!instagramAccount.IsActive)
                {
                    return(0);
                }

                UserController objusercontroller = new UserController();
                var            configi           = new ConfigurationIns(AppSettings.instaAuthUrl, AppSettings.instaClientId, AppSettings.instaClientSecret, AppSettings.instaReturnUrl, AppSettings.instaTokenRetrivelUrl, AppSettings.instaApiBaseUrl, "");
                var            _api = oAuthInstagram.GetInstance(configi);

                ParseAndUpdateInstagramAccount(instagramAccount, objusercontroller, databaseRepository);

                GetParseInstagramSelfFeeds(instagramAccount.InstagramId, instagramAccount.AccessToken);
                GetParseInstagramUserDetails(instagramAccount.InstagramId, instagramAccount.AccessToken, instagramAccount);
                GetParseInstagramPostLikes(instagramAccount.InstagramId, instagramAccount.AccessToken);
                GetInstagramPostComments(instagramAccount.InstagramId, instagramAccount.AccessToken);
                GetInstagramFollowing(instagramAccount.InstagramId, instagramAccount.AccessToken);
                GetInstagramFollower(instagramAccount.InstagramId, instagramAccount.AccessToken);
            }
            else
            {
                apiHitsCount = 0;
            }
            return(0);
        }
Пример #2
0
 private void UpdateInstagramReport(Instagramaccounts insatgramAccount, DatabaseRepository databaseRepository)
 {
     try
     {
         if (insatgramAccount.lastpagereportgenerated.AddHours(24) <= DateTime.UtcNow)
         {
             CreateReports(insatgramAccount.InstagramId, insatgramAccount.Is90DayDataUpdated);
             insatgramAccount.Is90DayDataUpdated      = true;
             insatgramAccount.lastpagereportgenerated = DateTime.UtcNow;
             databaseRepository.Update(insatgramAccount);
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
     }
 }
        private void ParseAndUpdateInstagramAccount(Instagramaccounts insAcc, UserController objusercontroller, DatabaseRepository databaseRepository)
        {
            var objuser     = objusercontroller.GetUserDetails(insAcc.InstagramId, insAcc.AccessToken);
            var _grpProfile = databaseRepository.Find <Domain.Socioboard.Models.Groupprofiles>(t => t.profileId.Contains(insAcc.InstagramId)).ToList();


            if (objuser != null)
            {
                insAcc.ProfileUrl = objuser?.data?.profile_picture ?? insAcc.ProfileUrl;
                _grpProfile.Select(s => { s.profilePic = objuser?.data?.profile_picture ?? insAcc.ProfileUrl; return(s); }).ToList();
                insAcc.TotalImages = objuser?.data?.counts.media ?? insAcc.TotalImages;
                insAcc.FollowedBy  = objuser?.data?.counts.followed_by ?? insAcc.FollowedBy;
                insAcc.Followers   = objuser?.data?.counts.follows ?? insAcc.Followers;
                insAcc.bio         = objuser?.data?.bio ?? insAcc.bio;

                foreach (var item_grpProfile in _grpProfile)
                {
                    databaseRepository.Update <Groupprofiles>(item_grpProfile);
                }
                databaseRepository.Update <Instagramaccounts>(insAcc);
            }
        }
        private static string GetParseInstagramUserDetails(string profile_id, string access_token, Instagramaccounts instagramaccounts)
        {
            var    databaseRepository = new DatabaseRepository();
            string code_status        = "false";
            var    insert             = new InstagramUserDetails();
            var    post_data          = new JObject();
            string url = "https://api.instagram.com/v1/users/" + profile_id + "?access_token=" + access_token;

            try
            {
                post_data = JObject.Parse(ApiInstagramHttp(url));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            try
            {
                var item = post_data["data"];

                if (item != null)
                {
                    apiHitsCount++;
                    try
                    {
                        string   insta_name   = item.SelectToken("username")?.ToString();
                        string   full_name    = item.SelectToken("full_name")?.ToString();
                        string   imageUrl     = item.SelectToken("profile_picture")?.ToString();
                        string   media_count  = item.SelectToken("counts.media")?.ToString();
                        DateTime Created_Time = DateTime.Now;
                        string   follower     = item.SelectToken("counts.followed_by")?.ToString();
                        string   following    = item.SelectToken("counts.follows")?.ToString();


                        if (instagramaccounts != null && instagramaccounts.IsActive == true)
                        {
                            instagramaccounts.TotalImages = Convert.ToInt32(media_count);
                            instagramaccounts.Followers   = Convert.ToInt32(follower);
                            instagramaccounts.FollowedBy  = Convert.ToInt32(following);
                            instagramaccounts.InsUserName = insta_name;
                            instagramaccounts.ProfileUrl  = imageUrl;
                            instagramaccounts.InstagramId = profile_id;
                            databaseRepository.Update(instagramaccounts);
                        }

                        DateTime t1 = DateTime.Now.Date;
                        DateTime t2 = DateTime.Now.Date.AddHours(12);
                        DateTime t3 = DateTime.Now.AddDays(1).Date.AddSeconds(-1);
                        if (DateTime.Now.TimeOfDay >= t1.TimeOfDay && DateTime.Now.TimeOfDay < t2.TimeOfDay)
                        {
                            if (instagramaccounts != null && instagramaccounts.IsActive == true)
                            {
                                instagramaccounts.TotalImages = Convert.ToInt32(media_count);
                                instagramaccounts.Followers   = Convert.ToInt32(follower);
                                instagramaccounts.FollowedBy  = Convert.ToInt32(following);
                                instagramaccounts.InsUserName = insta_name;
                                instagramaccounts.ProfileUrl  = imageUrl;
                                instagramaccounts.InstagramId = profile_id;
                                databaseRepository.Update(instagramaccounts);
                            }
                        }
                        if (DateTime.Now.TimeOfDay >= t2.TimeOfDay && DateTime.Now.TimeOfDay < t3.TimeOfDay)
                        {
                            if (instagramaccounts != null && instagramaccounts.IsActive == true)
                            {
                                instagramaccounts.TotalImages = Convert.ToInt32(media_count);
                                instagramaccounts.Followers   = Convert.ToInt32(follower);
                                instagramaccounts.FollowedBy  = Convert.ToInt32(following);
                                instagramaccounts.InsUserName = insta_name;
                                instagramaccounts.ProfileUrl  = imageUrl;
                                instagramaccounts.InstagramId = profile_id;
                                databaseRepository.Update(instagramaccounts);
                            }
                        }

                        code_status = "true";
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                }
                else
                {
                    apiHitsCount = MaxapiHitsCount;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            return(code_status);
        }