Beispiel #1
0
        public IActionResult RecGoogleAccount(string code, long userId)
        {
            string             ret          = string.Empty;
            string             objRefresh   = string.Empty;
            string             refreshToken = string.Empty;
            string             access_token = string.Empty;
            DatabaseRepository dbr          = new DatabaseRepository(_logger, _appEnv);

            oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri);
            oAuthToken      objToken           = new oAuthToken(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri);
            JObject         userinfo           = new JObject();

            try
            {
                objRefresh = ObjoAuthTokenGPlus.GetRefreshToken(code);
                JObject objaccesstoken = JObject.Parse(objRefresh);
                _logger.LogInformation(objaccesstoken.ToString());
                try
                {
                    refreshToken = objaccesstoken["refresh_token"].ToString();
                }
                catch { }
                access_token = objaccesstoken["access_token"].ToString();
                string user = objToken.GetUserInfo("self", access_token.ToString());
                //_logger.LogInformation(user);
                userinfo = JObject.Parse(JArray.Parse(user)[0].ToString());
                string people = objToken.GetPeopleInfo("self", access_token.ToString(), Convert.ToString(userinfo["id"]));
                userinfo = JObject.Parse(JArray.Parse(people)[0].ToString());
            }
            catch (Exception ex)
            {
                //access_token = objaccesstoken["access_token"].ToString();
                //ObjoAuthTokenGPlus.RevokeToken(access_token);
                _logger.LogInformation(ex.Message);
                _logger.LogError(ex.StackTrace);
                ret = "Access Token Not Found";
                return(Ok(ret));
            }
            Domain.Socioboard.Models.Googleplusaccounts gplusAcc = Api.Socioboard.Repositories.GplusRepository.getGPlusAccount(Convert.ToString(userinfo["id"]), _redisCache, dbr);

            if (gplusAcc != null && gplusAcc.IsActive == true)
            {
                if (gplusAcc.UserId == userId)
                {
                }
                //return BadRequest("GPlus account added by other user.");
            }

            // Adding GPlus Profile
            int x = Api.Socioboard.Repositories.GplusRepository.ReconnectGplusAccount(userinfo, dbr, userId, access_token, refreshToken, _redisCache, _appSettings, _logger);

            if (x == 1)
            {
                return(Ok("Gplus Account Reconnect Successfully"));
            }
            else
            {
                return(BadRequest("Issues while adding account"));
            }
        }
        public IActionResult AddGoogleAccountPhone(string refreshToken, string accessToken, long groupId, long userId)
        {
            var ret        = string.Empty;
            var objRefresh = string.Empty;
            var dbr        = new DatabaseRepository(_logger, _appEnv);

            var ObjoAuthTokenGPlus = new oAuthTokenGPlus(_appSettings.GoogleConsumerKey,
                                                         _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri);
            var objToken = new oAuthToken(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret,
                                          _appSettings.GoogleRedirectUri);
            var userinfo = new JObject();

            try
            {
                var user = objToken.GetUserInfo("self", accessToken);
                //_logger.LogInformation(user);
                userinfo = JObject.Parse(JArray.Parse(user)[0].ToString());
                var people = objToken.GetPeopleInfo("self", accessToken, Convert.ToString(userinfo["id"]));
                userinfo = JObject.Parse(JArray.Parse(people)[0].ToString());
            }
            catch (Exception ex)
            {
                _logger.LogInformation(ex.Message);
                _logger.LogError(ex.StackTrace);
                ret = "Access Token Not Found";
                return(Ok(ret));
            }

            var gplusAcc = GplusRepository.getGPlusAccount(Convert.ToString(userinfo["id"]), _redisCache, dbr);

            if (gplusAcc != null && gplusAcc.IsActive)
            {
                if (gplusAcc.UserId == userId)
                {
                    return(BadRequest("GPlus account already added by you."));
                }
                return(BadRequest("GPlus account added by other user."));
            }

            var ngrp = dbr.Find <Groups>(t => t.adminId == userId && t.id == groupId).FirstOrDefault();

            if (ngrp == null)
            {
                return(Ok("group not exist"));
            }
            // Adding GPlus Profile
            var x = GplusRepository.AddGplusAccount(userinfo, dbr, userId, ngrp.id, accessToken, refreshToken,
                                                    _redisCache, _appSettings, _logger);

            if (x == 1)
            {
                return(Ok("Gplus Account Added Successfully"));
            }
            return(BadRequest("Issues while adding account"));
        }
Beispiel #3
0
        public void UpadateGoogleAnalyticsAccount()
        {
            while (true)
            {
                try
                {
                    Helper.DatabaseRepository dbr = new Helper.DatabaseRepository();
                    oAuthTokenGPlus           ObjoAuthTokenGPlus = new oAuthTokenGPlus(AppSettings.GoogleConsumerKey, AppSettings.GoogleConsumerSecret, AppSettings.GoogleRedirectUri);
                    Analytics _Analytics = new Analytics(AppSettings.GoogleConsumerKey, AppSettings.GoogleConsumerSecret, AppSettings.GoogleRedirectUri);
                    List <Domain.Socioboard.Models.GoogleAnalyticsAccount> lstTwtAccounts = dbr.Find <Domain.Socioboard.Models.GoogleAnalyticsAccount>(t => t.IsActive).ToList();

                    foreach (var item in lstTwtAccounts)
                    {
                        try
                        {
                            if (item.LastUpdate.AddHours(1) <= DateTime.UtcNow)
                            {
                                if (item.IsActive)
                                {
                                    try
                                    {
                                        string  objRefresh     = ObjoAuthTokenGPlus.GetAccessToken(item.RefreshToken);
                                        JObject objaccesstoken = JObject.Parse(objRefresh);
                                        string  access_token   = objaccesstoken["access_token"].ToString();
                                        string  analytics      = _Analytics.getAnalyticsData(item.GaProfileId, "ga:visits,ga:pageviews", DateTime.UtcNow.AddDays(-7).ToString("yyyy-MM-dd"), DateTime.UtcNow.ToString("yyyy-MM-dd"), access_token);
                                        JObject JData          = JObject.Parse(analytics);
                                        string  visits         = JData["totalsForAllResults"]["ga:visits"].ToString();
                                        string  pageviews      = JData["totalsForAllResults"]["ga:pageviews"].ToString();
                                        item.Views      = Double.Parse(pageviews);
                                        item.Visits     = Double.Parse(visits);
                                        item.LastUpdate = DateTime.UtcNow;
                                        dbr.Update <Domain.Socioboard.Models.GoogleAnalyticsAccount>(item);
                                    }
                                    catch (Exception ex)
                                    {
                                        Thread.Sleep(600000);
                                    }
                                }
                            }
                        }
                        catch (Exception)
                        {
                            Thread.Sleep(600000);
                        }
                        Thread.Sleep(600000);
                    }
                }
                catch
                {
                }
            }
        }
        public void UpadateGoogleAnalyticsAccount()
        {
            while (true)
            {
                try
                {
                    Helper.DatabaseRepository dbr = new Helper.DatabaseRepository();
                    oAuthTokenGPlus           ObjoAuthTokenGPlus = new oAuthTokenGPlus("246221405801-5sg3n6bfpj329ie7tiqfdnb404pc78ea.apps.googleusercontent.com", "S5B4EtNKIe-1yHq4xEtXHCHK", "https://www.socioboard.com/GoogleManager/Google");
                    Analytics _Analytics = new Analytics("246221405801-5sg3n6bfpj329ie7tiqfdnb404pc78ea.apps.googleusercontent.com", "S5B4EtNKIe-1yHq4xEtXHCHK", "https://www.socioboard.com/GoogleManager/Google");
                    List <Domain.Socioboard.Models.GoogleAnalyticsAccount> lstTwtAccounts = dbr.Find <Domain.Socioboard.Models.GoogleAnalyticsAccount>(t => t.IsActive).ToList();

                    foreach (var item in lstTwtAccounts)
                    {
                        try
                        {
                            if (item.LastUpdate.AddHours(1) <= DateTime.UtcNow)
                            {
                                if (item.IsActive)
                                {
                                    try
                                    {
                                        string  objRefresh     = ObjoAuthTokenGPlus.GetAccessToken(item.RefreshToken);
                                        JObject objaccesstoken = JObject.Parse(objRefresh);
                                        string  access_token   = objaccesstoken["access_token"].ToString();
                                        string  analytics      = _Analytics.getAnalyticsData(item.GaProfileId, "ga:visits,ga:pageviews", DateTime.UtcNow.AddDays(-7).ToString("yyyy-MM-dd"), DateTime.UtcNow.ToString("yyyy-MM-dd"), access_token);
                                        JObject JData          = JObject.Parse(analytics);
                                        string  visits         = JData["totalsForAllResults"]["ga:visits"].ToString();
                                        string  pageviews      = JData["totalsForAllResults"]["ga:pageviews"].ToString();
                                        item.Views      = Double.Parse(pageviews);
                                        item.Visits     = Double.Parse(visits);
                                        item.LastUpdate = DateTime.UtcNow;
                                        dbr.Update <Domain.Socioboard.Models.GoogleAnalyticsAccount>(item);
                                    }
                                    catch (Exception ex)
                                    {
                                        Thread.Sleep(600000);
                                    }
                                }
                            }
                        }
                        catch (Exception)
                        {
                            Thread.Sleep(600000);
                        }
                        Thread.Sleep(600000);
                    }
                }
                catch
                {
                }
            }
        }
        private int UpdateGooglePlusFeeds(Googleplusaccounts googlePlusAccount, oAuthTokenGPlus objoAuthTokenGPlus, oAuthToken objToken)
        {
            var databaseRepository = new DatabaseRepository();

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

                ParseAndUpdateGoogleAccountDetails(googlePlusAccount, databaseRepository, objoAuthTokenGPlus, objToken);
                ParseAndUpdateGoogleAccountFeeds(googlePlusAccount, objoAuthTokenGPlus, objToken);
            }

            return(0);
        }
Beispiel #6
0
        public static void GetGooglePlusComments(string feedId, string AccessToken, string profileId, Helper.AppSettings settings, ILogger _logger)
        {
            MongoRepository gplusCommentRepo   = new MongoRepository("GoogleplusComments", settings);
            oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(settings.GoogleConsumerKey, settings.GoogleConsumerSecret, settings.GoogleRedirectUri);

            MongoGoogleplusComments _GoogleplusComments = new MongoGoogleplusComments();

            try
            {
                string  _Comments  = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetCommentListByActivityId.Replace("[ActivityId]", feedId) + "?key=" + settings.GoogleApiKey, AccessToken);
                JObject J_Comments = JObject.Parse(_Comments);
                List <MongoGoogleplusComments> lstGoogleplusComments = new List <MongoGoogleplusComments>();
                foreach (var item in J_Comments["items"])
                {
                    try
                    {
                        _GoogleplusComments.Id           = ObjectId.GenerateNewId();
                        _GoogleplusComments.Comment      = item["object"]["content"].ToString();
                        _GoogleplusComments.CommentId    = item["id"].ToString();
                        _GoogleplusComments.CreatedDate  = Convert.ToDateTime(item["published"]).ToString("yyyy/MM/dd HH:mm:ss");
                        _GoogleplusComments.FeedId       = feedId;
                        _GoogleplusComments.FromId       = item["actor"]["id"].ToString();
                        _GoogleplusComments.FromImageUrl = item["actor"]["image"]["url"].ToString();
                        _GoogleplusComments.FromName     = item["actor"]["url"].ToString();
                        _GoogleplusComments.FromUrl      = item["actor"]["url"].ToString();
                        _GoogleplusComments.GplusUserId  = profileId;

                        lstGoogleplusComments.Add(_GoogleplusComments);

                        //if (!objGoogleplusCommentsRepository.IsExist(_GoogleplusComments.CommentId))
                        //{
                        //    objGoogleplusCommentsRepository.Add(_GoogleplusComments);
                        //}
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError(ex.Message);
                    }
                }

                gplusCommentRepo.AddList(lstGoogleplusComments);
            }
            catch (Exception ex)
            {
            }
        }
        public void GetGooglePlusComments(string feedId, string AccessToken, string profileId)
        {
            oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus();

            Domain.Socioboard.MongoDomain.GoogleplusComments _GoogleplusComments = new Domain.Socioboard.MongoDomain.GoogleplusComments();
            try
            {
                string  _Comments  = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetCommentListByActivityId.Replace("[ActivityId]", feedId) + "?key=" + ConfigurationManager.AppSettings["Api_Key"].ToString(), AccessToken);
                JObject J_Comments = JObject.Parse(_Comments);
                List <Domain.Socioboard.MongoDomain.GoogleplusComments> lstGoogleplusComments = new List <Domain.Socioboard.MongoDomain.GoogleplusComments>();
                foreach (var item in J_Comments["items"])
                {
                    try
                    {
                        _GoogleplusComments.Id           = ObjectId.GenerateNewId();
                        _GoogleplusComments.Comment      = item["object"]["content"].ToString();
                        _GoogleplusComments.CommentId    = item["id"].ToString();
                        _GoogleplusComments.CreatedDate  = Convert.ToDateTime(item["published"]).ToString("yyyy/MM/dd HH:mm:ss");
                        _GoogleplusComments.FeedId       = feedId;
                        _GoogleplusComments.FromId       = item["actor"]["id"].ToString();
                        _GoogleplusComments.FromImageUrl = item["actor"]["image"]["url"].ToString();
                        _GoogleplusComments.FromName     = item["actor"]["url"].ToString();
                        _GoogleplusComments.FromUrl      = item["actor"]["url"].ToString();
                        _GoogleplusComments.GplusUserId  = profileId;

                        lstGoogleplusComments.Add(_GoogleplusComments);

                        //if (!objGoogleplusCommentsRepository.IsExist(_GoogleplusComments.CommentId))
                        //{
                        //    objGoogleplusCommentsRepository.Add(_GoogleplusComments);
                        //}
                    }
                    catch (Exception ex)
                    {
                        logger.Error(ex.Message);
                    }
                }

                gplusCommentRepo.AddList(lstGoogleplusComments);
            }
            catch (Exception ex)
            {
            }
        }
Beispiel #8
0
        public void GetGoogleplusCircles(string UserId, string ProfileId)
        {
            try
            {
                Domain.Socioboard.Domain.GooglePlusAccount _GooglePlusAccount = objGooglePlusAccountRepository.GetGooglePlusAccount(Guid.Parse(UserId), ProfileId);
                oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus();
                oAuthToken      objToken           = new oAuthToken();

                #region Get_InYourCircles
                try
                {
                    string  _InyourCircles  = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleList.Replace("[userId]", _GooglePlusAccount.GpUserId).Replace("[collection]", "visible") + "?key=" + ConfigurationManager.AppSettings["Api_Key"].ToString(), _GooglePlusAccount.AccessToken);
                    JObject J_InyourCircles = JObject.Parse(_InyourCircles);
                    _GooglePlusAccount.InYourCircles = Convert.ToInt32(J_InyourCircles["totalItems"].ToString());
                }
                catch (Exception ex)
                {
                    _GooglePlusAccount.InYourCircles = 0;
                }
                #endregion

                #region Get_HaveYouInCircles
                try
                {
                    string  _HaveYouInCircles  = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleProfile + _GooglePlusAccount.GpUserId + "?key=" + ConfigurationManager.AppSettings["Api_Key"].ToString(), _GooglePlusAccount.AccessToken);
                    JObject J_HaveYouInCircles = JObject.Parse(_HaveYouInCircles);
                    _GooglePlusAccount.HaveYouInCircles = Convert.ToInt32(J_HaveYouInCircles["circledByCount"].ToString());
                }
                catch (Exception ex)
                {
                    _GooglePlusAccount.HaveYouInCircles = 0;
                }
                #endregion
                objGooglePlusAccountRepository.UpdateGooglePlusAccount(_GooglePlusAccount);
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
            }
        }
Beispiel #9
0
        public string GetGPusData(string UserId, string ProfileId)
        {
            Domain.Socioboard.Domain.GooglePlusAccount _GooglePlusAccount = objGooglePlusAccountRepository.GetGooglePlusAccount(Guid.Parse(UserId), ProfileId);
            //oAuthToken objToken = new oAuthToken();
            oAuthTokenGPlus objToken   = new oAuthTokenGPlus();
            string          finalToken = string.Empty;
            string          finaltoken = objToken.GetAccessToken(_GooglePlusAccount.RefreshToken);

            try
            {
                JObject objArray = JObject.Parse(finaltoken);
                finalToken = objArray["access_token"].ToString();
                GetGoogleplusCircles(UserId, ProfileId, finalToken);
                GetUserActivities(_GooglePlusAccount.UserId.ToString(), _GooglePlusAccount.GpUserId, finalToken, 0);
                // break;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }

            return("Gplus Account Updated Successfully");
        }
        public void GetGooglePlusLikes(string feedId, string AccessToken, string ProfileId, int Status)
        {
            oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus();

            Domain.Socioboard.Domain.GoogleplusLike _GoogleplusLike = new Domain.Socioboard.Domain.GoogleplusLike();
            try
            {
                string  _Likes  = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strLike.Replace("[ActivityId]", feedId) + "?key=" + ConfigurationManager.AppSettings["Api_Key"].ToString(), AccessToken);
                JObject J_Likes = JObject.Parse(_Likes);

                foreach (var item in J_Likes["items"])
                {
                    try
                    {
                        _GoogleplusLike.Id           = Guid.NewGuid();
                        _GoogleplusLike.FromId       = item["id"].ToString();
                        _GoogleplusLike.FromImageUrl = item["image"]["url"].ToString();
                        _GoogleplusLike.FromName     = item["displayName"].ToString();
                        _GoogleplusLike.ProfileId    = ProfileId;
                        _GoogleplusLike.FromUrl      = item["url"].ToString();
                        _GoogleplusLike.FeedId       = feedId;

                        if (!objGoogleplusCommentsRepository.IsLikeExist(_GoogleplusLike.FromId, feedId))
                        {
                            objGoogleplusCommentsRepository.AddLikes(_GoogleplusLike);
                        }
                    }
                    catch (Exception ex)
                    {
                        logger.Error(ex.Message);
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
        public void StartUpdateAccountDetails()
        {
            try
            {
                DataServicesBase.ActivityRunningStatus.AddOrUpdate(ServiceDetails.GooglePlusUpdateDetails, true, (enumType, runningStatus) => true);
                var googleAccounts = GetGooglePlusAccounts();

                var objoAuthTokenGPlus = new oAuthTokenGPlus(AppSettings.googleClientId, AppSettings.googleClientSecret, AppSettings.googleRedirectionUrl);
                var objToken           = new oAuthToken(AppSettings.googleClientId, AppSettings.googleClientSecret, AppSettings.googleRedirectionUrl);

                Parallel.ForEach(googleAccounts, new ParallelOptions {
                    MaxDegreeOfParallelism = 20
                }, gPlusAccount =>
                {
                    UpdateGooglePlusFeeds(gPlusAccount, objoAuthTokenGPlus, objToken);
                });

                DataServicesBase.ActivityRunningStatus.AddOrUpdate(ServiceDetails.GooglePlusUpdateDetails, true, (enumType, runningStatus) => false);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        private void ParseAndUpdateGoogleAccountDetails(Googleplusaccounts googlePlusAccount, DatabaseRepository databaseRepository, oAuthTokenGPlus objoAuthTokenGPlus, oAuthToken objToken)
        {
            try
            {
                string  objRefresh     = objoAuthTokenGPlus.GetAccessToken(googlePlusAccount.RefreshToken);
                JObject objaccesstoken = JObject.Parse(objRefresh);
                string  access_token   = objaccesstoken.SelectToken("access_token")?.ToString();
                string  user           = objToken.GetUserInfo("self", access_token);
                JObject userinfo       = JObject.Parse(JArray.Parse(user)[0].ToString());
                string  people         = objToken.GetPeopleInfo("self", access_token, googlePlusAccount.GpUserId);
                userinfo = JObject.Parse(JArray.Parse(people)[0].ToString());

                googlePlusAccount.GpUserName     = userinfo.SelectToken("displayName")?.ToString() ?? userinfo.SelectToken("name")?.ToString();
                googlePlusAccount.GpProfileImage = userinfo.SelectToken("image.url")?.ToString() ?? userinfo.SelectToken("picture")?.ToString();
                googlePlusAccount.about          = userinfo.SelectToken("tagline")?.ToString() ?? googlePlusAccount.about;
                googlePlusAccount.college        = userinfo.SelectTokens("organizations").FirstOrDefault()?.SelectToken("name")?.ToString() ?? googlePlusAccount.college;
                googlePlusAccount.coverPic       = userinfo.SelectToken("cover.coverPhoto.url")?.ToString() ?? googlePlusAccount.coverPic;
                googlePlusAccount.education      = userinfo.SelectTokens("organizations").FirstOrDefault()?.SelectToken("type")?.ToString() ?? googlePlusAccount.education;
                googlePlusAccount.EmailId        = userinfo.SelectTokens("emails").FirstOrDefault()?.SelectToken("value")?.ToString() ?? googlePlusAccount.EmailId;
                googlePlusAccount.gender         = userinfo.SelectToken("gender")?.ToString() ?? googlePlusAccount.gender;
                googlePlusAccount.workPosition   = userinfo.SelectToken("occupation")?.ToString() ?? googlePlusAccount.workPosition;
                googlePlusAccount.LastUpdate     = DateTime.UtcNow;

                databaseRepository.Update(googlePlusAccount);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Beispiel #13
0
        public void GetUserActivities(string UserId, string ProfileId, string AcessToken)
        {
            oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus();

            try
            {
                Domain.Socioboard.Domain.GooglePlusActivities _GooglePlusActivities = null;
                string  _Activities  = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetActivitiesList.Replace("[ProfileId]", ProfileId) + "?key=" + ConfigurationManager.AppSettings["Api_Key"].ToString(), AcessToken);
                JObject J_Activities = JObject.Parse(_Activities);
                foreach (var item in J_Activities["items"])
                {
                    _GooglePlusActivities          = new Domain.Socioboard.Domain.GooglePlusActivities();
                    _GooglePlusActivities.Id       = Guid.NewGuid();
                    _GooglePlusActivities.UserId   = Guid.Parse(UserId);
                    _GooglePlusActivities.GpUserId = ProfileId;
                    try
                    {
                        _GooglePlusActivities.FromUserName = item["actor"]["displayName"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.FromId = item["actor"]["id"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.ActivityId = item["id"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.ActivityUrl = item["url"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.Title = item["title"].ToString();
                    }
                    catch { }
                    _GooglePlusActivities.EntryDate = DateTime.Now;
                    try
                    {
                        _GooglePlusActivities.FromProfileImage = item["actor"]["image"]["url"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.Content = item["object"]["content"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.PublishedDate = Convert.ToDateTime(item["published"].ToString());
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.PlusonersCount = Convert.ToInt32(item["object"]["plusoners"]["totalItems"].ToString());
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.RepliesCount = Convert.ToInt32(item["object"]["replies"]["totalItems"].ToString());
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.ResharersCount = Convert.ToInt32(item["object"]["resharers"]["totalItems"].ToString());
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.AttachmentType = item["object"]["attachments"][0]["objectType"].ToString();
                        if (_GooglePlusActivities.AttachmentType == "video")
                        {
                            _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["embed"]["url"].ToString();
                        }
                        else if (_GooglePlusActivities.AttachmentType == "photo")
                        {
                            _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["image"]["url"].ToString();
                        }
                        else if (_GooglePlusActivities.AttachmentType == "article")
                        {
                            try
                            {
                                _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["image"]["url"].ToString();
                            }
                            catch { }
                            try
                            {
                                _GooglePlusActivities.ArticleDisplayname = item["object"]["attachments"][0]["displayName"].ToString();
                            }
                            catch { }
                            try
                            {
                                _GooglePlusActivities.ArticleContent = item["object"]["attachments"][0]["content"].ToString();
                            }
                            catch { }
                            try
                            {
                                _GooglePlusActivities.Link = item["object"]["attachments"][0]["url"].ToString();
                            }
                            catch { }
                        }
                    }
                    catch (Exception ex)
                    {
                        _GooglePlusActivities.AttachmentType = "note";
                        _GooglePlusActivities.Attachment     = "";
                    }
                    if (!objGooglePlusActivitiesRepository.checkgoogleplusActivityExists(_GooglePlusActivities.ActivityId, Guid.Parse(UserId)))
                    {
                        objGooglePlusActivitiesRepository.addgoogleplusActivity(_GooglePlusActivities);
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error("GetUserActivities => " + ex.Message);
            }
        }
Beispiel #14
0
        public static void GetUserActivities(string ProfileId, string AcessToken)
        {
            oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(AppSettings.GoogleConsumerKey, AppSettings.GoogleConsumerSecret, AppSettings.GoogleRedirectUri);

            try
            {
                //Domain.Socioboard.Domain.GooglePlusActivities _GooglePlusActivities = null;
                MongoGplusFeed _GooglePlusActivities;
                string         _Activities  = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetActivitiesList.Replace("[ProfileId]", ProfileId) + "?key=" + AppSettings.GoogleApiKey, AcessToken);
                JObject        J_Activities = JObject.Parse(_Activities);
                foreach (var item in J_Activities["items"])
                {
                    _GooglePlusActivities    = new MongoGplusFeed();
                    _GooglePlusActivities.Id = ObjectId.GenerateNewId();
                    //_GooglePlusActivities.UserId = Guid.Parse(UserId);
                    _GooglePlusActivities.GpUserId = ProfileId;
                    try
                    {
                        _GooglePlusActivities.FromUserName = item["actor"]["displayName"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.FromId = item["actor"]["id"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.ActivityId = item["id"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.ActivityUrl = item["url"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.Title = item["title"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.FromProfileImage = item["actor"]["image"]["url"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.Content = item["object"]["content"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.PublishedDate = Convert.ToDateTime(item["published"].ToString()).ToString("yyyy/MM/dd HH:mm:ss");
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.PlusonersCount = Convert.ToInt32(item["object"]["plusoners"]["totalItems"].ToString());
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.RepliesCount = Convert.ToInt32(item["object"]["replies"]["totalItems"].ToString());
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.ResharersCount = Convert.ToInt32(item["object"]["resharers"]["totalItems"].ToString());
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.AttachmentType = item["object"]["attachments"][0]["objectType"].ToString();
                        if (_GooglePlusActivities.AttachmentType == "video")
                        {
                            _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["embed"]["url"].ToString();
                        }
                        else if (_GooglePlusActivities.AttachmentType == "photo")
                        {
                            _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["image"]["url"].ToString();
                        }
                        else if (_GooglePlusActivities.AttachmentType == "album")
                        {
                            _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["thumbnails"][0]["image"]["url"].ToString();
                        }
                        else if (_GooglePlusActivities.AttachmentType == "article")
                        {
                            try
                            {
                                _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["image"]["url"].ToString();
                            }
                            catch { }
                            try
                            {
                                _GooglePlusActivities.ArticleDisplayname = item["object"]["attachments"][0]["displayName"].ToString();
                            }
                            catch { }
                            try
                            {
                                _GooglePlusActivities.ArticleContent = item["object"]["attachments"][0]["content"].ToString();
                            }
                            catch { }
                            try
                            {
                                _GooglePlusActivities.Link = item["object"]["attachments"][0]["url"].ToString();
                            }
                            catch { }
                        }
                    }
                    catch (Exception ex)
                    {
                        _GooglePlusActivities.AttachmentType = "note";
                        _GooglePlusActivities.Attachment     = "";
                    }
                    MongoRepository gplusFeedRepo = new MongoRepository("MongoGplusFeed");
                    var             ret           = gplusFeedRepo.Find <MongoGplusFeed>(t => t.ActivityId.Equals(_GooglePlusActivities.ActivityId));
                    var             task          = Task.Run(async() => {
                        return(await ret);
                    });
                    int count = task.Result.Count;
                    if (count < 1)
                    {
                        gplusFeedRepo.Add(_GooglePlusActivities);
                    }
                    else
                    {
                        FilterDefinition <BsonDocument> filter = new BsonDocument("ActivityId", _GooglePlusActivities.ActivityId);
                        var update = Builders <BsonDocument> .Update.Set("PlusonersCount", _GooglePlusActivities.PlusonersCount).Set("RepliesCount", _GooglePlusActivities.RepliesCount).Set("ResharersCount", _GooglePlusActivities.ResharersCount);

                        gplusFeedRepo.Update <MongoGplusFeed>(update, filter);
                    }
                    new Thread(delegate() {
                        GetGooglePlusComments(_GooglePlusActivities.ActivityId, AcessToken, ProfileId);
                    }).Start();
                }
            }
            catch (Exception ex)
            {
            }
        }
Beispiel #15
0
        public static int AddGplusAccount(JObject profile, Model.DatabaseRepository dbr, Int64 userId, Int64 groupId, string accessToken, string refreshToken, Helper.Cache _redisCache, Helper.AppSettings settings, ILogger _logger)
        {
            int isSaved = 0;

            Domain.Socioboard.Models.Googleplusaccounts gplusAcc = GplusRepository.getGPlusAccount(Convert.ToString(profile["id"]), _redisCache, dbr);
            oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(settings.GoogleConsumerKey, settings.GoogleConsumerSecret, settings.GoogleRedirectUri);

            if (gplusAcc != null && gplusAcc.IsActive == false)
            {
                gplusAcc.IsActive     = true;
                gplusAcc.UserId       = userId;
                gplusAcc.AccessToken  = accessToken;
                gplusAcc.RefreshToken = refreshToken;
                gplusAcc.EntryDate    = DateTime.UtcNow;
                try
                {
                    gplusAcc.GpUserName = profile["displayName"].ToString();
                }
                catch
                {
                    try
                    {
                        gplusAcc.GpUserName = profile["name"].ToString();
                    }
                    catch { }
                }
                try
                {
                    gplusAcc.GpProfileImage = Convert.ToString(profile["image"]["url"]);
                }
                catch
                {
                    try
                    {
                        gplusAcc.GpProfileImage = Convert.ToString(profile["picture"]);
                    }
                    catch { }
                }
                gplusAcc.AccessToken = accessToken;
                try
                {
                    gplusAcc.about = Convert.ToString(profile["tagline"]);
                }
                catch
                {
                    gplusAcc.about = "";
                }
                try
                {
                    gplusAcc.college = Convert.ToString(profile["organizations"][0]["name"]);
                }
                catch
                {
                    gplusAcc.college = "";
                }
                try
                {
                    gplusAcc.coverPic = Convert.ToString(profile["cover"]["coverPhoto"]["url"]);
                }
                catch
                {
                    gplusAcc.coverPic = "";
                }
                try
                {
                    gplusAcc.education = Convert.ToString(profile["organizations"][0]["type"]);
                }
                catch
                {
                    gplusAcc.education = "";
                }
                try
                {
                    gplusAcc.EmailId = Convert.ToString(profile["emails"][0]["value"]);
                }
                catch
                {
                    gplusAcc.EmailId = "";
                }
                try
                {
                    gplusAcc.gender = Convert.ToString(profile["gender"]);
                }
                catch
                {
                    gplusAcc.gender = "";
                }
                try
                {
                    gplusAcc.workPosition = Convert.ToString(profile["occupation"]);
                }
                catch
                {
                    gplusAcc.workPosition = "";
                }
                gplusAcc.LastUpdate = DateTime.UtcNow;
                #region Get_InYourCircles
                try
                {
                    string  _InyourCircles  = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleList.Replace("[userId]", gplusAcc.GpUserId).Replace("[collection]", "visible") + "?key=" + settings.GoogleApiKey, accessToken);
                    JObject J_InyourCircles = JObject.Parse(_InyourCircles);
                    gplusAcc.InYourCircles = Convert.ToInt32(J_InyourCircles["totalItems"].ToString());
                }
                catch (Exception ex)
                {
                    gplusAcc.InYourCircles = 0;
                }
                #endregion

                #region Get_HaveYouInCircles
                try
                {
                    string  _HaveYouInCircles  = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleProfile + gplusAcc.GpUserId + "?key=" + settings.GoogleApiKey, accessToken);
                    JObject J_HaveYouInCircles = JObject.Parse(_HaveYouInCircles);
                    gplusAcc.HaveYouInCircles = Convert.ToInt32(J_HaveYouInCircles["circledByCount"].ToString());
                }
                catch (Exception ex)
                {
                    gplusAcc.HaveYouInCircles = 0;
                }
                #endregion



                dbr.Update <Domain.Socioboard.Models.Googleplusaccounts>(gplusAcc);
            }
            else
            {
                gplusAcc          = new Domain.Socioboard.Models.Googleplusaccounts();
                gplusAcc.UserId   = userId;
                gplusAcc.GpUserId = profile["id"].ToString();
                try {
                    gplusAcc.GpUserName = profile["displayName"].ToString();
                }
                catch {
                    try {
                        gplusAcc.GpUserName = profile["name"].ToString();
                    }
                    catch { }
                }
                gplusAcc.IsActive     = true;
                gplusAcc.AccessToken  = accessToken;
                gplusAcc.RefreshToken = refreshToken;
                gplusAcc.EntryDate    = DateTime.UtcNow;
                try {
                    gplusAcc.GpProfileImage = Convert.ToString(profile["image"]["url"]);
                }
                catch
                {
                    try
                    {
                        gplusAcc.GpProfileImage = Convert.ToString(profile["picture"]);
                    }
                    catch { }
                }
                gplusAcc.AccessToken = accessToken;
                try
                {
                    gplusAcc.about = Convert.ToString(profile["tagline"]);
                }
                catch
                {
                    gplusAcc.about = "";
                }
                try
                {
                    gplusAcc.college = Convert.ToString(profile["organizations"][0]["name"]);
                }
                catch
                {
                    gplusAcc.college = "";
                }
                try
                {
                    gplusAcc.coverPic = Convert.ToString(profile["cover"]["coverPhoto"]["url"]);
                }
                catch
                {
                    gplusAcc.coverPic = "";
                }
                try
                {
                    gplusAcc.education = Convert.ToString(profile["organizations"][0]["type"]);
                }
                catch
                {
                    gplusAcc.education = "";
                }
                try
                {
                    gplusAcc.EmailId = Convert.ToString(profile["emails"][0]["value"]);
                }
                catch
                {
                    try {
                        try
                        {
                            gplusAcc.EmailId = Convert.ToString(profile["email"]);
                        }
                        catch { }
                    } catch { }
                    gplusAcc.EmailId = "";
                }
                try
                {
                    gplusAcc.gender = Convert.ToString(profile["gender"]);
                }
                catch
                {
                    gplusAcc.gender = "";
                }
                try
                {
                    gplusAcc.workPosition = Convert.ToString(profile["occupation"]);
                }
                catch
                {
                    gplusAcc.workPosition = "";
                }
                gplusAcc.LastUpdate = DateTime.UtcNow;


                #region Get_InYourCircles
                try
                {
                    string  _InyourCircles  = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleList.Replace("[userId]", gplusAcc.GpUserId).Replace("[collection]", "visible") + "?key=" + settings.GoogleApiKey, accessToken);
                    JObject J_InyourCircles = JObject.Parse(_InyourCircles);
                    gplusAcc.InYourCircles = Convert.ToInt32(J_InyourCircles["totalItems"].ToString());
                }
                catch (Exception ex)
                {
                    gplusAcc.InYourCircles = 0;
                }
                #endregion

                #region Get_HaveYouInCircles
                try
                {
                    string  _HaveYouInCircles  = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleProfile + gplusAcc.GpUserId + "?key=" + settings.GoogleApiKey, accessToken);
                    JObject J_HaveYouInCircles = JObject.Parse(_HaveYouInCircles);
                    gplusAcc.HaveYouInCircles = Convert.ToInt32(J_HaveYouInCircles["circledByCount"].ToString());
                }
                catch (Exception ex)
                {
                    gplusAcc.HaveYouInCircles = 0;
                }
                #endregion

                isSaved = dbr.Add <Domain.Socioboard.Models.Googleplusaccounts>(gplusAcc);
            }

            if (isSaved == 1)
            {
                List <Domain.Socioboard.Models.Googleplusaccounts> lstgplusAcc = dbr.Find <Domain.Socioboard.Models.Googleplusaccounts>(t => t.GpUserId.Equals(gplusAcc.GpUserId)).ToList();
                if (lstgplusAcc != null && lstgplusAcc.Count() > 0)
                {
                    isSaved = GroupProfilesRepository.AddGroupProfile(groupId, lstgplusAcc.First().GpUserId, lstgplusAcc.First().GpUserName, userId, lstgplusAcc.First().GpProfileImage, Domain.Socioboard.Enum.SocialProfileType.GPlus, dbr);
                    //codes to delete cache
                    _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheUserProfileCount + userId);
                    _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheGroupProfiles + groupId);


                    if (isSaved == 1)
                    {
                        new Thread(delegate()
                        {
                            GetUserActivities(gplusAcc.GpUserId, gplusAcc.AccessToken, settings, _logger);
                        }).Start();
                    }
                }
            }
            return(isSaved);
        }
        public IActionResult GoogleLoginPhone(string refreshToken, string accessToken, SBAccountType accType)
        {
            var ret        = string.Empty;
            var objRefresh = string.Empty;

            var ObjoAuthTokenGPlus = new oAuthTokenGPlus(_appSettings.GoogleConsumerKey,
                                                         _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri);
            var objToken = new oAuthToken(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret,
                                          _appSettings.GoogleRedirectUri);
            var userinfo = new JObject();

            try
            {
                var user = objToken.GetUserInfo("self", accessToken);
                _logger.LogInformation(user);
                userinfo = JObject.Parse(JArray.Parse(user)[0].ToString());
            }
            catch (Exception ex)
            {
                _logger.LogInformation(ex.Message);
                _logger.LogError(ex.StackTrace);
                ret = "Access Token Not Found";
                return(Ok(ret));
            }

            var EmailId = string.Empty;

            try
            {
                EmailId = Convert.ToString(userinfo["email"]);
            }
            catch
            {
            }

            if (string.IsNullOrEmpty(EmailId))
            {
                return(Ok("Google Not retuning Email"));
            }


            try
            {
                var inMemUser = _redisCache.Get <User>(EmailId);
                if (inMemUser != null)
                {
                    return(Ok(inMemUser));
                }
            }
            catch (Exception ex)
            {
                _logger.LogInformation(ex.Message);
                _logger.LogError(ex.StackTrace);
            }


            var dbr     = new DatabaseRepository(_logger, _appEnv);
            var lstUser = dbr.Find <User>(t => t.EmailId.Equals(EmailId));

            if (lstUser != null && lstUser.Count() > 0)
            {
                var d1 = DateTime.UtcNow;
                //User userTable = dbr.Single<User>(t => t.EmailId == EmailId);
                //userTable.LastLoginTime = d1;
                lstUser.First().LastLoginTime = d1;
                dbr.Update(lstUser.First());
                _redisCache.Set(lstUser.First().EmailId, lstUser.First());
                return(Ok(lstUser.First()));
            }

            {
                var gplusAcc = GplusRepository.getGPlusAccount(Convert.ToString(userinfo["id"]), _redisCache, dbr);
                if (gplusAcc != null && gplusAcc.IsActive)
                {
                    return(BadRequest("GPlus account added by other user."));
                }


                var user = new User();
                if (accType == SBAccountType.Free)
                {
                    user.AccountType = SBAccountType.Free;
                }
                else if (accType == SBAccountType.Deluxe)
                {
                    user.AccountType = SBAccountType.Deluxe;
                }
                else if (accType == SBAccountType.Premium)
                {
                    user.AccountType = SBAccountType.Premium;
                }
                else if (accType == SBAccountType.Topaz)
                {
                    user.AccountType = SBAccountType.Topaz;
                }
                else if (accType == SBAccountType.Platinum)
                {
                    user.AccountType = SBAccountType.Platinum;
                }
                else if (accType == SBAccountType.Gold)
                {
                    user.AccountType = SBAccountType.Gold;
                }
                else if (accType == SBAccountType.Ruby)
                {
                    user.AccountType = SBAccountType.Ruby;
                }
                else if (accType == SBAccountType.Standard)
                {
                    user.AccountType = SBAccountType.Standard;
                }
                user.PaymentType         = PaymentType.paypal;
                user.ActivationStatus    = SBUserActivationStatus.Active;
                user.CreateDate          = DateTime.UtcNow;
                user.EmailId             = EmailId;
                user.ExpiryDate          = DateTime.UtcNow.AddDays(30);
                user.UserName            = "******";
                user.EmailValidateToken  = "Google";
                user.UserType            = "User";
                user.LastLoginTime       = DateTime.UtcNow;
                user.PaymentStatus       = SBPaymentStatus.UnPaid;
                user.SocialLoginEnableGo = true;
                try
                {
                    user.FirstName = Convert.ToString(userinfo["name"]);
                }
                catch
                {
                }

                user.RegistrationType = SBRegistrationType.Google;

                var SavedStatus = dbr.Add(user);
                var nuser       = dbr.Single <User>(t => t.EmailId.Equals(user.EmailId));
                if (SavedStatus == 1 && nuser != null)
                {
                    var group = new Groups();
                    group.adminId     = nuser.Id;
                    group.createdDate = DateTime.UtcNow;
                    group.groupName   = SocioboardConsts.DefaultGroupName;
                    SavedStatus       = dbr.Add(group);
                    if (SavedStatus == 1)
                    {
                        var ngrp = dbr.Find <Groups>(t =>
                                                     t.adminId == nuser.Id && t.groupName.Equals(SocioboardConsts.DefaultGroupName))
                                   .FirstOrDefault();
                        GroupMembersRepository.CreateGroupMember(ngrp.id, nuser, _redisCache, dbr);
                        // Adding GPlus Profile
                        GplusRepository.AddGplusAccount(userinfo, dbr, nuser.Id, ngrp.id, accessToken, refreshToken,
                                                        _redisCache, _appSettings, _logger);
                    }
                }

                return(Ok(nuser));
            }
        }
        public IActionResult GoogleLogin(string code, SBAccountType accType)
        {
            var    refreshToken = string.Empty;
            string accessToken;

            var objoAuthTokenGPlus = new oAuthTokenGPlus(_appSettings.GoogleConsumerKey,
                                                         _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri);
            var objToken = new oAuthToken(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret,
                                          _appSettings.GoogleRedirectUri);
            JObject userInfo;

            try
            {
                var objRefresh     = objoAuthTokenGPlus.GetRefreshToken(code);
                var objAccessToken = JObject.Parse(objRefresh);

                _logger.LogInformation(objAccessToken.ToString());
                try
                {
                    refreshToken = objAccessToken["refresh_token"].ToString();
                }
                catch (Exception ex)
                {
                    _logger.LogError(ex.StackTrace);
                }

                accessToken = objAccessToken["access_token"].ToString();
                var user = objToken.GetUserInfo("self", accessToken);
                _logger.LogInformation(user);
                userInfo = JObject.Parse(JArray.Parse(user)[0].ToString());
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.StackTrace);

                return(Ok("Access Token Not Found"));
            }

            var emailId = string.Empty;

            try
            {
                emailId = Convert.ToString(userInfo["email"]);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.StackTrace);
            }

            if (string.IsNullOrEmpty(emailId))
            {
                return(Ok("Google not returning Email"));
            }

            try
            {
                var inMemUser = _redisCache.Get <User>(emailId);
                if (inMemUser != null)
                {
                    return(Ok(inMemUser));
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.StackTrace);
            }

            var dbr          = new DatabaseRepository(_logger, _appEnv);
            var signedInUser = dbr.FindFirstMatch <User>(t => t.EmailId.Equals(emailId));


            if (signedInUser != null)
            {
                if (!signedInUser.SocialLoginEnableGo)
                {
                    return(Ok("Account isn't sign-up with google!"));
                }

                CustomTaskFactory.Instance.Start(() =>
                {
                    if (signedInUser.RefrralCode == null)
                    {
                        signedInUser.RefrralCode = $"{SocioboardApiConstants.ApplicationName}" + signedInUser.Id;
                    }

                    signedInUser.LastLoginTime = DateTime.UtcNow;
                    dbr.Update(signedInUser);
                    _redisCache.Set(signedInUser.EmailId, signedInUser);
                });

                return(Ok(signedInUser));
            }

            var googleUser = new User
            {
                AccountType         = accType,
                PaymentType         = PaymentType.paypal,
                ActivationStatus    = SBUserActivationStatus.Active,
                CreateDate          = DateTime.UtcNow,
                EmailId             = emailId,
                ExpiryDate          = DateTime.UtcNow.AddDays(1),
                UserName            = $"{SocioboardApiConstants.ApplicationName}",
                EmailValidateToken  = "Google",
                UserType            = "User",
                LastLoginTime       = DateTime.UtcNow,
                SocialLoginEnableGo = true,
                SocialLoginEnableFb = false,
                PaymentStatus       = SBPaymentStatus.UnPaid,
                RegistrationType    = SBRegistrationType.Google,
                TrailStatus         = UserTrailStatus.active
            };

            if (googleUser.AccountType == SBAccountType.Free)
            {
                googleUser.ExpiryDate = DateTime.UtcNow.AddDays(15);
            }

            try
            {
                googleUser.FirstName = Convert.ToString(userInfo["name"]);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.StackTrace);
            }

            var savedStatus = dbr.Add(googleUser);

            var googleUserAccount = dbr.FindFirstMatch <User>(t => t.EmailId.Equals(googleUser.EmailId));

            CustomTaskFactory.Instance.Start(() =>
            {
                if (savedStatus != 1 || googleUserAccount == null)
                {
                    return;
                }

                _redisCache.Set(emailId, googleUserAccount);

                var group         = new Groups();
                group.adminId     = googleUserAccount.Id;
                group.createdDate = DateTime.UtcNow;
                group.groupName   = SocioboardConsts.DefaultGroupName;
                savedStatus       = dbr.Add(group);

                if (savedStatus != 1)
                {
                    return;
                }

                var groupDetails = dbr.Find <Groups>(t =>
                                                     t.adminId == googleUserAccount.Id &&
                                                     t.groupName.Equals(SocioboardConsts.DefaultGroupName))
                                   .FirstOrDefault();

                if (groupDetails == null)
                {
                    return;
                }

                GroupMembersRepository.CreateGroupMember(groupDetails.id, googleUserAccount, _redisCache, dbr);

                GplusRepository.AddGplusAccount(userInfo, dbr, googleUserAccount.Id, groupDetails.id, accessToken,
                                                refreshToken,
                                                _redisCache, _appSettings, _logger);
            });


            return(Ok(googleUserAccount));
        }
Beispiel #18
0
        public void UpdateGooglePlusAccount()
        {
            while (true)
            {
                try
                {
                    Helper.DatabaseRepository dbr = new Helper.DatabaseRepository();
                    oAuthTokenGPlus           ObjoAuthTokenGPlus = new oAuthTokenGPlus(AppSettings.GoogleConsumerKey, AppSettings.GoogleConsumerSecret, AppSettings.GoogleRedirectUri);
                    oAuthToken objToken = new oAuthToken(AppSettings.GoogleConsumerKey, AppSettings.GoogleConsumerSecret, AppSettings.GoogleRedirectUri);
                    JObject    userinfo = new JObject();
                    List <Domain.Socioboard.Models.Googleplusaccounts> lstTwtAccounts = dbr.Find <Domain.Socioboard.Models.Googleplusaccounts>(t => t.IsActive).ToList();
                    // lstTwtAccounts = lstTwtAccounts.Where(t => t.GpUserName.Contains("Avinash Verma")).ToList();
                    foreach (var item in lstTwtAccounts)
                    {
                        List <Domain.Socioboard.Models.Groupprofiles> _grpProfile = dbr.Find <Domain.Socioboard.Models.Groupprofiles>(t => t.profileId.Contains(item.GpUserId)).ToList();
                        try
                        {
                            if (item.LastUpdate.AddHours(1) <= DateTime.UtcNow)
                            {
                                if (item.IsActive)
                                {
                                    try
                                    {
                                        string  objRefresh     = ObjoAuthTokenGPlus.GetAccessToken(item.RefreshToken);
                                        JObject objaccesstoken = JObject.Parse(objRefresh);
                                        string  access_token   = objaccesstoken["access_token"].ToString();
                                        string  user           = objToken.GetUserInfo("self", access_token);
                                        userinfo = JObject.Parse(JArray.Parse(user)[0].ToString());
                                        string people = objToken.GetPeopleInfo("self", access_token, item.GpUserId);
                                        userinfo = JObject.Parse(JArray.Parse(people)[0].ToString());

                                        try
                                        {
                                            item.GpUserName = userinfo["displayName"].ToString();
                                        }
                                        catch
                                        {
                                            try
                                            {
                                                item.GpUserName = userinfo["name"].ToString();
                                            }
                                            catch { }
                                        }
                                        try
                                        {
                                            item.GpProfileImage = Convert.ToString(userinfo["image"]["url"]);
                                            _grpProfile.Select(s => { s.profilePic = Convert.ToString(userinfo["image"]["url"]); return(s); }).ToList();
                                        }
                                        catch
                                        {
                                            try
                                            {
                                                item.GpProfileImage = Convert.ToString(userinfo["picture"]);
                                                _grpProfile.Select(s => { s.profilePic = Convert.ToString(userinfo["picture"]); return(s); }).ToList();
                                            }
                                            catch { }
                                        }
                                        try
                                        {
                                            item.about = Convert.ToString(userinfo["tagline"]);
                                        }
                                        catch
                                        {
                                            item.about = item.about;
                                        }
                                        try
                                        {
                                            item.college = Convert.ToString(userinfo["organizations"][0]["name"]);
                                        }
                                        catch
                                        {
                                            item.college = item.college;
                                        }
                                        try
                                        {
                                            item.coverPic = Convert.ToString(userinfo["cover"]["coverPhoto"]["url"]);
                                        }
                                        catch
                                        {
                                            item.coverPic = item.coverPic;
                                        }
                                        try
                                        {
                                            item.education = Convert.ToString(userinfo["organizations"][0]["type"]);
                                        }
                                        catch
                                        {
                                            item.education = item.education;
                                        }
                                        try
                                        {
                                            item.EmailId = Convert.ToString(userinfo["emails"][0]["value"]);
                                        }
                                        catch
                                        {
                                            item.EmailId = item.EmailId;
                                        }
                                        try
                                        {
                                            item.gender = Convert.ToString(userinfo["gender"]);
                                        }
                                        catch
                                        {
                                            item.gender = item.gender;
                                        }
                                        try
                                        {
                                            item.workPosition = Convert.ToString(userinfo["occupation"]);
                                        }
                                        catch
                                        {
                                            item.workPosition = item.workPosition;
                                        }

                                        #region Get_InYourCircles
                                        try
                                        {
                                            string  _InyourCircles  = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleList.Replace("[userId]", item.GpUserId).Replace("[collection]", "visible") + "?key=" + AppSettings.GoogleApiKey, item.AccessToken);
                                            JObject J_InyourCircles = JObject.Parse(_InyourCircles);
                                            item.InYourCircles = Convert.ToInt32(J_InyourCircles["totalItems"].ToString());
                                        }
                                        catch (Exception ex)
                                        {
                                            item.InYourCircles = item.InYourCircles;
                                        }
                                        #endregion

                                        #region Get_HaveYouInCircles
                                        try
                                        {
                                            string  _HaveYouInCircles  = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleProfile + item.GpUserId + "?key=" + AppSettings.GoogleApiKey, item.AccessToken);
                                            JObject J_HaveYouInCircles = JObject.Parse(_HaveYouInCircles);
                                            item.HaveYouInCircles = Convert.ToInt32(J_HaveYouInCircles["circledByCount"].ToString());
                                        }
                                        catch (Exception ex)
                                        {
                                            item.HaveYouInCircles = item.HaveYouInCircles;
                                        }
                                        #endregion

                                        dbr.Update <Domain.Socioboard.Models.Googleplusaccounts>(item);
                                        foreach (var item_grpProfile in _grpProfile)
                                        {
                                            dbr.Update <Domain.Socioboard.Models.Groupprofiles>(item_grpProfile);
                                        }
                                        GooglePlusFeed.GetUserActivities(item.GpUserId, access_token);

                                        item.LastUpdate = DateTime.UtcNow;
                                        dbr.Update <Domain.Socioboard.Models.Googleplusaccounts>(item);
                                    }
                                    catch (Exception)
                                    {
                                        Thread.Sleep(600000);
                                    }
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            Thread.Sleep(600000);
                        }
                    }
                    Thread.Sleep(600000);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("issue in web api calling" + ex.StackTrace);
                    Thread.Sleep(600000);
                }
            }
        }
Beispiel #19
0
        public string AddGPlusAccount(string client_id, string client_secret, string redirect_uri, string UserId, string GroupId, string code)
        {
            string ret          = string.Empty;
            string objRefresh   = string.Empty;
            string refreshToken = string.Empty;
            string access_token = string.Empty;

            try
            {
                oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus();
                oAuthToken      objToken           = new oAuthToken();
                objToken.ConsumerKey    = client_id;
                objToken.ConsumerSecret = client_secret;

                try
                {
                    objRefresh = ObjoAuthTokenGPlus.GetRefreshToken(code, client_id, client_secret, redirect_uri);
                    logger.Error("vikash: ObjoAuthTokenGPlus()");
                }
                catch (Exception ex) { }
                JObject objaccesstoken = JObject.Parse(objRefresh);

                try
                {
                    refreshToken = objaccesstoken["refresh_token"].ToString();
                }
                catch (Exception ex)
                {
                    access_token = objaccesstoken["access_token"].ToString();
                    ObjoAuthTokenGPlus.RevokeToken(access_token);
                    Console.WriteLine(ex.StackTrace);
                    ret = "Refresh Token Not Found";
                    return(ret);
                }

                try
                {
                    access_token = objaccesstoken["access_token"].ToString();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.StackTrace);
                }

                JArray userinfo = new JArray();
                try
                {
                    userinfo = objToken.GetUserInfo("self", access_token.ToString());
                }
                catch (Exception ex)
                {
                }
                Domain.Socioboard.Domain.GooglePlusAccount _GooglePlusAccount = new Domain.Socioboard.Domain.GooglePlusAccount();
                foreach (var itemuserinfo in userinfo)
                {
                    try
                    {
                        _GooglePlusAccount.Id             = Guid.NewGuid();
                        _GooglePlusAccount.GpUserId       = itemuserinfo["id"].ToString();
                        _GooglePlusAccount.GpUserName     = itemuserinfo["name"].ToString();
                        _GooglePlusAccount.GpProfileImage = itemuserinfo["picture"].ToString();
                        _GooglePlusAccount.IsActive       = 1;
                        _GooglePlusAccount.ProfileType    = "gplus";
                        _GooglePlusAccount.AccessToken    = access_token;
                        _GooglePlusAccount.RefreshToken   = refreshToken;
                        _GooglePlusAccount.EmailId        = itemuserinfo["email"].ToString();
                        _GooglePlusAccount.UserId         = Guid.Parse(UserId);
                        _GooglePlusAccount.EntryDate      = DateTime.Now;
                    }
                    catch (Exception ex)
                    {
                        logger.Error("AddGPlusAccount => GooglePlusAccount =>" + ex.Message);
                    }
                }
                #region Get_InYourCircles
                try
                {
                    string  _InyourCircles  = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleList.Replace("[userId]", _GooglePlusAccount.GpUserId).Replace("[collection]", "visible") + "?key=" + ConfigurationManager.AppSettings["Api_Key"].ToString(), access_token);
                    JObject J_InyourCircles = JObject.Parse(_InyourCircles);
                    _GooglePlusAccount.InYourCircles = Convert.ToInt32(J_InyourCircles["totalItems"].ToString());
                }
                catch (Exception ex)
                {
                    _GooglePlusAccount.InYourCircles = 0;
                }
                #endregion

                #region Get_HaveYouInCircles
                try
                {
                    string  _HaveYouInCircles  = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetPeopleProfile + _GooglePlusAccount.GpUserId + "?key=" + ConfigurationManager.AppSettings["Api_Key"].ToString(), access_token);
                    JObject J_HaveYouInCircles = JObject.Parse(_HaveYouInCircles);
                    _GooglePlusAccount.HaveYouInCircles = Convert.ToInt32(J_HaveYouInCircles["circledByCount"].ToString());
                }
                catch (Exception ex)
                {
                    _GooglePlusAccount.HaveYouInCircles = 0;
                }
                #endregion

                #region Add GPlusAccount
                if (!objGooglePlusAccountRepository.checkGooglePlusUserExists(_GooglePlusAccount.GpUserId, _GooglePlusAccount.UserId))
                {
                    objGooglePlusAccountRepository.addGooglePlusUser(_GooglePlusAccount);
                    #region Add TeamMemberProfile
                    Domain.Socioboard.Domain.Team objTeam = objTeamRepository.GetTeamByGroupId(Guid.Parse(GroupId));
                    Domain.Socioboard.Domain.TeamMemberProfile objTeamMemberProfile = new Domain.Socioboard.Domain.TeamMemberProfile();
                    objTeamMemberProfile.Id               = Guid.NewGuid();
                    objTeamMemberProfile.TeamId           = objTeam.Id;
                    objTeamMemberProfile.Status           = 1;
                    objTeamMemberProfile.ProfileType      = "gplus";
                    objTeamMemberProfile.StatusUpdateDate = DateTime.Now;
                    objTeamMemberProfile.ProfileId        = _GooglePlusAccount.GpUserId;
                    objTeamMemberProfile.ProfilePicUrl    = _GooglePlusAccount.GpProfileImage;
                    objTeamMemberProfile.ProfileName      = _GooglePlusAccount.GpUserName;
                    objTeamMemberProfileRepository.addNewTeamMember(objTeamMemberProfile);
                    #endregion
                    #region SocialProfile
                    Domain.Socioboard.Domain.SocialProfile objSocialProfile = new Domain.Socioboard.Domain.SocialProfile();
                    objSocialProfile.Id            = Guid.NewGuid();
                    objSocialProfile.ProfileType   = "gplus";
                    objSocialProfile.ProfileId     = _GooglePlusAccount.GpUserId;
                    objSocialProfile.UserId        = Guid.Parse(UserId);
                    objSocialProfile.ProfileDate   = DateTime.Now;
                    objSocialProfile.ProfileStatus = 1;
                    if (!objSocialProfilesRepository.checkUserProfileExist(objSocialProfile))
                    {
                        objSocialProfilesRepository.addNewProfileForUser(objSocialProfile);
                    }
                    #endregion

                    ret = "Account Added Successfully";
                }
                else
                {
                    ret = "Account already Exist !";
                }

                #endregion
                GetUserActivities(UserId, _GooglePlusAccount.GpUserId, access_token);
                return(new JavaScriptSerializer().Serialize(_GooglePlusAccount));
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
                return("");
            }
        }
        public void GetUserActivities(string UserId, string ProfileId, string AcessToken, int status)
        {
            oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus();

            try
            {
                //Domain.Socioboard.Domain.GooglePlusActivities _GooglePlusActivities = null;
                Domain.Socioboard.MongoDomain.GoogleplusFeed _GooglePlusActivities;
                string  _Activities  = ObjoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetActivitiesList.Replace("[ProfileId]", ProfileId) + "?key=" + ConfigurationManager.AppSettings["Api_Key"].ToString(), AcessToken);
                JObject J_Activities = JObject.Parse(_Activities);
                foreach (var item in J_Activities["items"])
                {
                    _GooglePlusActivities    = new Domain.Socioboard.MongoDomain.GoogleplusFeed();
                    _GooglePlusActivities.Id = ObjectId.GenerateNewId();
                    //_GooglePlusActivities.UserId = Guid.Parse(UserId);
                    _GooglePlusActivities.GpUserId = ProfileId;
                    try
                    {
                        _GooglePlusActivities.FromUserName = item["actor"]["displayName"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.FromId = item["actor"]["id"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.ActivityId = item["id"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.ActivityUrl = item["url"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.Title = item["title"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.FromProfileImage = item["actor"]["image"]["url"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.Content = item["object"]["content"].ToString();
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.PublishedDate = Convert.ToDateTime(item["published"].ToString()).ToString("yyyy/MM/dd HH:mm:ss");
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.PlusonersCount = Convert.ToInt32(item["object"]["plusoners"]["totalItems"].ToString());
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.RepliesCount = Convert.ToInt32(item["object"]["replies"]["totalItems"].ToString());
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.ResharersCount = Convert.ToInt32(item["object"]["resharers"]["totalItems"].ToString());
                    }
                    catch { }
                    try
                    {
                        _GooglePlusActivities.AttachmentType = item["object"]["attachments"][0]["objectType"].ToString();
                        if (_GooglePlusActivities.AttachmentType == "video")
                        {
                            _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["embed"]["url"].ToString();
                        }
                        else if (_GooglePlusActivities.AttachmentType == "photo")
                        {
                            _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["image"]["url"].ToString();
                        }
                        else if (_GooglePlusActivities.AttachmentType == "album")
                        {
                            _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["thumbnails"][0]["image"]["url"].ToString();
                        }
                        else if (_GooglePlusActivities.AttachmentType == "article")
                        {
                            try
                            {
                                _GooglePlusActivities.Attachment = item["object"]["attachments"][0]["image"]["url"].ToString();
                            }
                            catch { }
                            try
                            {
                                _GooglePlusActivities.ArticleDisplayname = item["object"]["attachments"][0]["displayName"].ToString();
                            }
                            catch { }
                            try
                            {
                                _GooglePlusActivities.ArticleContent = item["object"]["attachments"][0]["content"].ToString();
                            }
                            catch { }
                            try
                            {
                                _GooglePlusActivities.Link = item["object"]["attachments"][0]["url"].ToString();
                            }
                            catch { }
                        }
                    }
                    catch (Exception ex)
                    {
                        _GooglePlusActivities.AttachmentType = "note";
                        _GooglePlusActivities.Attachment     = "";
                    }
                    //if (!objGooglePlusActivitiesRepository.checkgoogleplusActivityExists(_GooglePlusActivities.ActivityId, Guid.Parse(UserId)))
                    //{
                    //    objGooglePlusActivitiesRepository.addgoogleplusActivity(_GooglePlusActivities);
                    //}

                    var ret  = gplusFeedRepo.Find <Domain.Socioboard.MongoDomain.GoogleplusFeed>(t => t.ActivityId.Equals(_GooglePlusActivities.ActivityId));
                    var task = Task.Run(async() => {
                        return(await ret);
                    });
                    int count = task.Result.Count;
                    if (count < 1)
                    {
                        gplusFeedRepo.Add(_GooglePlusActivities);
                    }
                    else
                    {
                        FilterDefinition <BsonDocument> filter = new BsonDocument("ActivityId", _GooglePlusActivities.ActivityId);
                        var update = Builders <BsonDocument> .Update.Set("PlusonersCount", _GooglePlusActivities.PlusonersCount).Set("RepliesCount", _GooglePlusActivities.RepliesCount).Set("ResharersCount", _GooglePlusActivities.ResharersCount);

                        gplusFeedRepo.Update <Domain.Socioboard.MongoDomain.GoogleplusFeed>(update, filter);
                    }

                    GetGooglePlusComments(_GooglePlusActivities.ActivityId, AcessToken, ProfileId);
                    GetGooglePlusLikes(_GooglePlusActivities.ActivityId, AcessToken, ProfileId, status);
                }
            }
            catch (Exception ex)
            {
                logger.Error("GetUserActivities => " + ex.Message);
            }
        }
Beispiel #21
0
        public IActionResult GoogleLogin(string code, Domain.Socioboard.Enum.SBAccountType accType)
        {
            string ret          = string.Empty;
            string objRefresh   = string.Empty;
            string refreshToken = string.Empty;
            string access_token = string.Empty;

            oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri);
            oAuthToken      objToken           = new oAuthToken(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri);
            JObject         userinfo           = new JObject();

            try
            {
                objRefresh = ObjoAuthTokenGPlus.GetRefreshToken(code);
                JObject objaccesstoken = JObject.Parse(objRefresh);
                _logger.LogInformation(objaccesstoken.ToString());
                try
                {
                    refreshToken = objaccesstoken["refresh_token"].ToString();
                }
                catch { }
                access_token = objaccesstoken["access_token"].ToString();
                string user = objToken.GetUserInfo("self", access_token.ToString());
                _logger.LogInformation(user);
                userinfo = JObject.Parse(JArray.Parse(user)[0].ToString());
            }
            catch (Exception ex)
            {
                //access_token = objaccesstoken["access_token"].ToString();
                //ObjoAuthTokenGPlus.RevokeToken(access_token);
                _logger.LogInformation(ex.Message);
                _logger.LogError(ex.StackTrace);
                ret = "Access Token Not Found";
                return(Ok(ret));
            }

            string EmailId = string.Empty;

            try
            {
                EmailId = (Convert.ToString(userinfo["email"]));
            }
            catch { }
            if (string.IsNullOrEmpty(EmailId))
            {
                return(Ok("Google Not retuning Email"));
            }


            try
            {
                User inMemUser = _redisCache.Get <User>(EmailId);
                if (inMemUser != null)
                {
                    return(Ok(inMemUser));
                }
            }
            catch (Exception ex)
            {
                _logger.LogInformation(ex.Message);
                _logger.LogError(ex.StackTrace);
            }



            DatabaseRepository dbr     = new DatabaseRepository(_logger, _appEnv);
            IList <User>       lstUser = dbr.Find <User>(t => t.EmailId.Equals(EmailId));

            if (lstUser != null && lstUser.Count() > 0)
            {
                DateTime d1 = DateTime.UtcNow;
                //User userTable = dbr.Single<User>(t => t.EmailId == EmailId);
                //userTable.LastLoginTime = d1;
                lstUser.First().LastLoginTime = d1;
                dbr.Update <User>(lstUser.First());
                _redisCache.Set <User>(lstUser.First().EmailId, lstUser.First());
                return(Ok(lstUser.First()));
            }
            else
            {
                Domain.Socioboard.Models.Googleplusaccounts gplusAcc = Api.Socioboard.Repositories.GplusRepository.getGPlusAccount(Convert.ToString(userinfo["id"]), _redisCache, dbr);
                if (gplusAcc != null && gplusAcc.IsActive == true)
                {
                    return(Ok("GPlus account added by other user."));
                }


                Domain.Socioboard.Models.User user = new Domain.Socioboard.Models.User();
                if (accType == Domain.Socioboard.Enum.SBAccountType.Free)
                {
                    user.AccountType = Domain.Socioboard.Enum.SBAccountType.Free;
                }
                else if (accType == Domain.Socioboard.Enum.SBAccountType.Deluxe)
                {
                    user.AccountType = Domain.Socioboard.Enum.SBAccountType.Deluxe;
                }
                else if (accType == Domain.Socioboard.Enum.SBAccountType.Premium)
                {
                    user.AccountType = Domain.Socioboard.Enum.SBAccountType.Premium;
                }
                else if (accType == Domain.Socioboard.Enum.SBAccountType.Topaz)
                {
                    user.AccountType = Domain.Socioboard.Enum.SBAccountType.Topaz;
                }
                else if (accType == Domain.Socioboard.Enum.SBAccountType.Platinum)
                {
                    user.AccountType = Domain.Socioboard.Enum.SBAccountType.Platinum;
                }
                else if (accType == Domain.Socioboard.Enum.SBAccountType.Gold)
                {
                    user.AccountType = Domain.Socioboard.Enum.SBAccountType.Gold;
                }
                else if (accType == Domain.Socioboard.Enum.SBAccountType.Ruby)
                {
                    user.AccountType = Domain.Socioboard.Enum.SBAccountType.Ruby;
                }
                else if (accType == Domain.Socioboard.Enum.SBAccountType.Standard)
                {
                    user.AccountType = Domain.Socioboard.Enum.SBAccountType.Standard;
                }
                user.PaymentType        = Domain.Socioboard.Enum.PaymentType.paypal;
                user.ActivationStatus   = Domain.Socioboard.Enum.SBUserActivationStatus.Active;
                user.CreateDate         = DateTime.UtcNow;
                user.EmailId            = EmailId;
                user.ExpiryDate         = DateTime.UtcNow.AddDays(1);
                user.UserName           = "******";
                user.EmailValidateToken = "Google";
                user.UserType           = "User";
                user.PaymentStatus      = Domain.Socioboard.Enum.SBPaymentStatus.UnPaid;
                try
                {
                    user.FirstName = (Convert.ToString(userinfo["name"]));
                }
                catch { }
                user.RegistrationType = Domain.Socioboard.Enum.SBRegistrationType.Google;

                int  SavedStatus = dbr.Add <Domain.Socioboard.Models.User>(user);
                User nuser       = dbr.Single <User>(t => t.EmailId.Equals(user.EmailId));
                if (SavedStatus == 1 && nuser != null)
                {
                    Groups group = new Groups();
                    group.adminId     = nuser.Id;
                    group.createdDate = DateTime.UtcNow;
                    group.groupName   = Domain.Socioboard.Consatants.SocioboardConsts.DefaultGroupName;
                    SavedStatus       = dbr.Add <Groups>(group);
                    if (SavedStatus == 1)
                    {
                        Groups ngrp = dbr.Find <Domain.Socioboard.Models.Groups>(t => t.adminId == nuser.Id && t.groupName.Equals(Domain.Socioboard.Consatants.SocioboardConsts.DefaultGroupName)).FirstOrDefault();
                        GroupMembersRepository.createGroupMember(ngrp.id, nuser, _redisCache, dbr);
                        // Adding GPlus Profile
                        Api.Socioboard.Repositories.GplusRepository.AddGplusAccount(userinfo, dbr, nuser.Id, ngrp.id, access_token, refreshToken, _redisCache, _appSettings, _logger);
                    }
                }
                return(Ok(nuser));
            }
        }
        private void ParseAndUpdateGoogleAccountFeeds(Googleplusaccounts googlePlusAccount, oAuthTokenGPlus objoAuthTokenGPlus, oAuthToken objToken)
        {
            try
            {
                string  objRefresh     = objoAuthTokenGPlus.GetAccessToken(googlePlusAccount.RefreshToken);
                JObject objaccesstoken = JObject.Parse(objRefresh);
                string  access_token   = objaccesstoken.SelectToken("access_token")?.ToString();

                MongoGplusFeed _GooglePlusActivities;
                string         _Activities  = objoAuthTokenGPlus.APIWebRequestToGetUserInfo(Globals.strGetActivitiesList.Replace("[ProfileId]", googlePlusAccount.GpUserId) + "?key=" + AppSettings.googleApiKey, access_token);
                JObject        J_Activities = JObject.Parse(_Activities);
                foreach (var item in J_Activities["items"])
                {
                    _GooglePlusActivities          = new MongoGplusFeed();
                    _GooglePlusActivities.Id       = ObjectId.GenerateNewId();
                    _GooglePlusActivities.GpUserId = googlePlusAccount.GpUserId;

                    _GooglePlusActivities.FromUserName     = item.SelectToken("actor.displayName")?.ToString();
                    _GooglePlusActivities.FromId           = item.SelectToken("actor.id")?.ToString();
                    _GooglePlusActivities.ActivityId       = item.SelectToken("id")?.ToString();
                    _GooglePlusActivities.ActivityUrl      = item.SelectToken("url")?.ToString();
                    _GooglePlusActivities.Title            = item.SelectToken("title")?.ToString();
                    _GooglePlusActivities.FromProfileImage = item.SelectToken("actor.image.url")?.ToString();
                    _GooglePlusActivities.Content          = item.SelectToken("object.content")?.ToString();
                    _GooglePlusActivities.PublishedDate    = Convert.ToDateTime(item.SelectToken("published")?.ToString()).ToString("yyyy/MM/dd HH:mm:ss") ?? "";
                    _GooglePlusActivities.PlusonersCount   = Convert.ToInt32(item.SelectToken("object.plusoners.totalItems")?.ToString() ?? "0");
                    _GooglePlusActivities.RepliesCount     = Convert.ToInt32(item.SelectToken("object.replies.totalItems")?.ToString() ?? "0");
                    _GooglePlusActivities.ResharersCount   = Convert.ToInt32(item.SelectToken("object.resharers.totalItems")?.ToString() ?? "0");

                    _GooglePlusActivities.AttachmentType = item.SelectTokens("object.attachments")?.FirstOrDefault()?.SelectToken("objectType")?.ToString() ?? "";

                    switch (_GooglePlusActivities.AttachmentType)
                    {
                    case "video":
                        _GooglePlusActivities.Attachment = item.SelectTokens("object.attachments")?.FirstOrDefault()?.SelectToken("embed.url")?.ToString() ?? "";
                        break;

                    case "photo":
                        _GooglePlusActivities.Attachment = item.SelectTokens("object.attachments")?.FirstOrDefault()?.SelectToken("image.url")?.ToString() ?? "";
                        break;

                    case "album":
                        _GooglePlusActivities.Attachment = item.SelectTokens("object.attachments")?.FirstOrDefault()?.SelectTokens("thumbnails")?.FirstOrDefault().SelectToken("image.url")?.ToString() ?? "";
                        break;

                    case "article":
                        _GooglePlusActivities.Attachment         = item.SelectTokens("object.attachments")?.FirstOrDefault()?.SelectToken("image.url")?.ToString() ?? "";
                        _GooglePlusActivities.ArticleDisplayname = item.SelectTokens("object.attachments")?.FirstOrDefault()?.SelectToken("displayName")?.ToString() ?? "";
                        _GooglePlusActivities.ArticleContent     = item.SelectTokens("object.attachments")?.FirstOrDefault()?.SelectToken("content")?.ToString() ?? "";
                        _GooglePlusActivities.Link = item.SelectTokens("object.attachments")?.FirstOrDefault()?.SelectToken("url")?.ToString() ?? "";
                        break;

                    default:
                        _GooglePlusActivities.AttachmentType = "note";
                        _GooglePlusActivities.Attachment     = "";
                        break;
                    }

                    MongoRepository gplusFeedRepo = new MongoRepository("MongoGplusFeed");
                    var             ret           = gplusFeedRepo.Find <MongoGplusFeed>(t => t.ActivityId.Equals(_GooglePlusActivities.ActivityId));
                    var             task          = Task.Run(async() =>
                    {
                        return(await ret);
                    });
                    int count = task.Result.Count;
                    if (count < 1)
                    {
                        gplusFeedRepo.Add(_GooglePlusActivities);
                    }
                    else
                    {
                        FilterDefinition <BsonDocument> filter = new BsonDocument("ActivityId", _GooglePlusActivities.ActivityId);
                        var update = Builders <BsonDocument> .Update.Set("PlusonersCount", _GooglePlusActivities.PlusonersCount).Set("RepliesCount", _GooglePlusActivities.RepliesCount).Set("ResharersCount", _GooglePlusActivities.ResharersCount);

                        gplusFeedRepo.Update <MongoGplusFeed>(update, filter);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }