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);
            }
        }
Ejemplo n.º 2
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"));
            }
        }
Ejemplo n.º 3
0
        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"));
        }
Ejemplo n.º 4
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));
            }
        }
Ejemplo n.º 5
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("");
            }
        }
Ejemplo n.º 6
0
        public string AddYoutubeAccountwithLogin(string client_id, string client_secret, string redirect_uri, string UserId, string GroupId, string access_token)
        {
            #region Local variables Inisitalisation
            string            ret                  = string.Empty;
            string            objRefresh           = string.Empty;
            string            refreshToken         = string.Empty;
            oAuthTokenYoutube ObjoAuthTokenYoutube = new oAuthTokenYoutube();
            oAuthToken        objToken             = new oAuthToken();
            Domain.Socioboard.Domain.YoutubeAccount objYoutubeAccount = new Domain.Socioboard.Domain.YoutubeAccount();
            Domain.Socioboard.Domain.YoutubeChannel objYoutubeChannel;
            YoutubeChannelRepository objYoutubeChannelRepository = new YoutubeChannelRepository();
            YoutubeAccountRepository objYoutubeAccountRepository = new YoutubeAccountRepository();
            #endregion
            #region Get user Profile and Add Youtube Account
            JArray userinfo = new JArray();
            try
            {
                userinfo = objToken.GetUserInfo("me", access_token.ToString());
            }
            catch (Exception ex)
            {
            }
            foreach (var itemEmail in userinfo)
            {
                try
                {
                    objYoutubeAccount.Id       = Guid.NewGuid();
                    objYoutubeAccount.Ytuserid = itemEmail["id"].ToString();
                    objYoutubeAccount.Emailid  = itemEmail["email"].ToString();
                    try
                    {
                        objYoutubeAccount.Ytusername = itemEmail["given_name"].ToString();
                    }
                    catch (Exception ex)
                    {
                        objYoutubeAccount.Ytusername = itemEmail["name"].ToString();
                    }
                    objYoutubeAccount.Ytprofileimage = itemEmail["picture"].ToString();
                    objYoutubeAccount.Accesstoken    = access_token;
                    objYoutubeAccount.Refreshtoken   = refreshToken;
                    objYoutubeAccount.Isactive       = 1;
                    objYoutubeAccount.Entrydate      = DateTime.Now;
                    objYoutubeAccount.UserId         = Guid.Parse(UserId);
                    if (!objYoutubeAccountRepository.checkYoutubeUserExists(objYoutubeAccount))
                    {
                        YoutubeAccountRepository.Add(objYoutubeAccount);
                        ret = "Account Added Successfully";
                    }
                    else
                    {
                        ret = "Account already Exist !";
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.StackTrace);
                }
            }


            #endregion
            #region Add Youtube Channels
            GlobusGooglePlusLib.Youtube.Core.Channels ObjChannel = new GlobusGooglePlusLib.Youtube.Core.Channels();
            JArray objarray = new JArray();
            try
            {
                string  part         = (oAuthTokenYoutube.Parts.contentDetails.ToString() + "," + oAuthTokenYoutube.Parts.statistics.ToString());
                string  Value        = ObjChannel.Get_Channel_List(access_token, part, 50, true);
                JObject UserChannels = JObject.Parse(@Value);
                objarray = (JArray)UserChannels["items"];
            }
            catch (Exception ex)
            {
            }

            foreach (var item in objarray)
            {
                objYoutubeChannel = new Domain.Socioboard.Domain.YoutubeChannel();
                try
                {
                    objYoutubeChannel.Id               = Guid.NewGuid();
                    objYoutubeChannel.Channelid        = item["id"].ToString();
                    objYoutubeChannel.Likesid          = item["contentDetails"]["relatedPlaylists"]["likes"].ToString();
                    objYoutubeChannel.Favoritesid      = item["contentDetails"]["relatedPlaylists"]["favorites"].ToString();
                    objYoutubeChannel.Uploadsid        = item["contentDetails"]["relatedPlaylists"]["uploads"].ToString();
                    objYoutubeChannel.Watchhistoryid   = item["contentDetails"]["relatedPlaylists"]["watchHistory"].ToString();
                    objYoutubeChannel.Watchlaterid     = item["contentDetails"]["relatedPlaylists"]["watchLater"].ToString();
                    objYoutubeChannel.Googleplususerid = objYoutubeAccount.Ytuserid;
                    objYoutubeChannel.UserId           = Guid.Parse(UserId);
                    try
                    {
                        string viewcnt = item["statistics"]["viewCount"].ToString();
                        objYoutubeChannel.ViewCount = Convert.ToInt32(viewcnt);
                        string videocnt = item["statistics"]["videoCount"].ToString();
                        objYoutubeChannel.VideoCount = Convert.ToInt32(videocnt);
                        string commentcnt = item["statistics"]["commentCount"].ToString();
                        objYoutubeChannel.CommentCount = Convert.ToInt32(commentcnt);
                        string Subscribercnt = item["statistics"]["subscriberCount"].ToString();
                        objYoutubeChannel.SubscriberCount = Convert.ToInt32(Subscribercnt);
                        try
                        {
                            string str = item["statistics"]["hiddenSubscriberCount"].ToString();
                            if (str == "false")
                            {
                                objYoutubeChannel.HiddenSubscriberCount = 0;
                            }
                            else
                            {
                                objYoutubeChannel.HiddenSubscriberCount = 1;
                            }
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.StackTrace);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.StackTrace);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.StackTrace);
                }
                if (!objYoutubeChannelRepository.checkYoutubeChannelExists(objYoutubeChannel.Channelid, Guid.Parse(UserId)))
                {
                    YoutubeChannelRepository.Add(objYoutubeChannel);
                }
            }
            #endregion
            #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      = "youtube";
            objTeamMemberProfile.StatusUpdateDate = DateTime.Now;
            objTeamMemberProfile.ProfileId        = objYoutubeAccount.Ytuserid;

            objTeamMemberProfile.ProfileName   = objYoutubeAccount.Ytusername;
            objTeamMemberProfile.ProfilePicUrl = objYoutubeAccount.Ytprofileimage;

            if (!objTeamMemberProfileRepository.checkTeamMemberProfile(objTeam.Id, objYoutubeAccount.Ytuserid))
            {
                objTeamMemberProfileRepository.addNewTeamMember(objTeamMemberProfile);
            }
            #endregion
            #region SocialProfile
            Domain.Socioboard.Domain.SocialProfile objSocialProfile = new Domain.Socioboard.Domain.SocialProfile();
            objSocialProfile.Id            = Guid.NewGuid();
            objSocialProfile.ProfileType   = "youtube";
            objSocialProfile.ProfileId     = objYoutubeAccount.Ytuserid;
            objSocialProfile.UserId        = Guid.Parse(UserId);
            objSocialProfile.ProfileDate   = DateTime.Now;
            objSocialProfile.ProfileStatus = 1;
            if (!objSocialProfilesRepository.checkUserProfileExist(objSocialProfile))
            {
                objSocialProfilesRepository.addNewProfileForUser(objSocialProfile);
            }
            #endregion
            return(ret);
        }
Ejemplo n.º 7
0
        public string GoogleLogin(string code)
        {
            string            ret                  = string.Empty;
            string            objRefresh           = string.Empty;
            string            refreshToken         = string.Empty;
            string            access_token         = string.Empty;
            oAuthTokenYoutube ObjoAuthTokenYoutube = new oAuthTokenYoutube();
            oAuthToken        objToken             = new oAuthToken();

            Domain.Socioboard.Domain.User objuser = new Domain.Socioboard.Domain.User();
            try
            {
                logger.Error("Abhay before ObjoAuthTokenYoutube.GetRefreshToken: " + new System.Diagnostics.StackFrame(0, true).GetFileLineNumber());
                objRefresh = ObjoAuthTokenYoutube.GetRefreshToken(code, ConfigurationManager.AppSettings["YtconsumerKey"], ConfigurationManager.AppSettings["YtconsumerSecret"], ConfigurationManager.AppSettings["Ytredirect_uri"]);
                logger.Error("Abhay: " + new System.Diagnostics.StackFrame(0, true).GetFileLineNumber());

                logger.Error("1 " + code + " " + ConfigurationManager.AppSettings["YtconsumerKey"] + " " + ConfigurationManager.AppSettings["YtconsumerSecret"] + " " + ConfigurationManager.AppSettings["Ytredirect_uri"]);
            }
            catch (Exception ex)
            {
                logger.Error("2 " + code + " " + ConfigurationManager.AppSettings["YtconsumerKey"] + " " + ConfigurationManager.AppSettings["YtconsumerSecret"] + " " + ConfigurationManager.AppSettings["Ytredirect_uri"]);
                logger.Error(ex.Message);
                logger.Error(ex.StackTrace);
            }
            JObject objaccesstoken = JObject.Parse(objRefresh);

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

            JArray userinfo = new JArray();

            try
            {
                userinfo = objToken.GetUserInfo("me", access_token.ToString());
            }
            catch (Exception ex)
            {
            }

            foreach (var itemEmail in userinfo)
            {
                try
                {
                    objuser.EmailId    = itemEmail["email"].ToString();
                    objuser.UserName   = itemEmail["name"].ToString();
                    objuser.ProfileUrl = itemEmail["picture"].ToString();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.StackTrace);
                }
            }
            return((new JavaScriptSerializer().Serialize(objuser)) + "_#_" + access_token);
        }
Ejemplo n.º 8
0
        private void AccessToken()
        {
            SocioBoard.Domain.User user = (User)Session["LoggedUser"];
            oAuthTokenYoutube      ObjoAuthTokenYoutube = new oAuthTokenYoutube();
            oAuthToken             objToken             = new oAuthToken();

            //GlobusGooglePlusLib.App.Core.PeopleController obj = new GlobusGooglePlusLib.App.Core.PeopleController();
            logger.Error("Error1:oAuthToken");

            string refreshToken = string.Empty;
            string access_token = string.Empty;


            try
            {
                string objRefresh = string.Empty;
                objRefresh = ObjoAuthTokenYoutube.GetRefreshToken(Request.QueryString["code"]);
                if (!objRefresh.StartsWith("["))
                {
                    objRefresh = "[" + objRefresh + "]";
                }
                JArray objArray = JArray.Parse(objRefresh);

                logger.Error("Error1:GetRefreshToken");

                if (!objRefresh.Contains("refresh_token"))
                {
                    logger.Error("Error0:refresh_token");
                    access_token = objArray[0]["access_token"].ToString();
                    string abc = ObjoAuthTokenYoutube.RevokeToken(access_token);
                    Response.Redirect("https://accounts.google.com/o/oauth2/auth?client_id=" + System.Configuration.ConfigurationManager.AppSettings["YtconsumerKey"] + "&redirect_uri=" + System.Configuration.ConfigurationManager.AppSettings["Ytredirect_uri"] + "&scope=https://www.googleapis.com/auth/youtube+https://www.googleapis.com/auth/youtube.readonly+https://www.googleapis.com/auth/youtubepartner+https://www.googleapis.com/auth/youtubepartner-channel-audit+https://www.googleapis.com/auth/userinfo.email+https://www.googleapis.com/auth/userinfo.profile+https://www.googleapis.com/auth/plus.me&response_type=code&access_type=offline");
                    logger.Error("Error1:refresh_token");
                }


                foreach (var item in objArray)
                {
                    logger.Error("Abhay Item :" + item);
                    try
                    {
                        try
                        {
                            refreshToken = item["refresh_token"].ToString();
                        }
                        catch (Exception ex)
                        {
                            logger.Error(ex.StackTrace);
                            logger.Error(ex.Message);

                            Console.WriteLine(ex.StackTrace);
                        }


                        access_token = item["access_token"].ToString();

                        break;
                    }
                    catch (Exception ex)
                    {
                        logger.Error(ex.StackTrace);
                        Console.WriteLine(ex.StackTrace);
                    }
                }


                //Get user Profile
                #region <<Get user Profile>>
                JArray objEmail = new JArray();
                try
                {
                    objEmail = objToken.GetUserInfo("me", access_token.ToString());
                }
                catch (Exception ex)
                {
                    logger.Error("Email : " + objEmail);
                    logger.Error(ex.Message);
                }


                #endregion


                GlobusGooglePlusLib.Youtube.Core.Channels ObjChannel = new GlobusGooglePlusLib.Youtube.Core.Channels();
                //Get the Channels of user

                JArray objarray = new JArray();
                try
                {
                    string part  = (oAuthTokenYoutube.Parts.contentDetails.ToString() + "," + oAuthTokenYoutube.Parts.statistics.ToString());
                    string Value = ObjChannel.Get_Channel_List(access_token, part, 50, true);
                    logger.Error("Successfully GetValus");
                    logger.Error("Value :" + Value);
                    JObject UserChannels = JObject.Parse(@Value);
                    logger.Error("Successfully Convert Jobj");
                    logger.Error("Successfully Convert Jobj");

                    objarray = (JArray)UserChannels["items"];
                    logger.Error("Successfully Convert JArr");
                }
                catch (Exception ex)
                {
                    logger.Error("UserChannels :" + ex.Message);
                }


                YoutubeAccount           objYoutubeAccount           = new YoutubeAccount();
                YoutubeChannel           objYoutubeChannel           = new YoutubeChannel();
                YoutubeChannelRepository objYoutubeChannelRepository = new YoutubeChannelRepository();
                YoutubeAccountRepository objYoutubeAccountRepository = new YoutubeAccountRepository();

                //put condition here to check is user already exise if exist then update else insert
                string ytuerid = "";
                foreach (var itemEmail in objEmail)
                {
                    logger.Error("itemEmail :" + itemEmail);
                    try
                    {
                        objYoutubeAccount.Id = Guid.NewGuid();
                        ytuerid = itemEmail["id"].ToString();
                        objYoutubeAccount.Ytuserid       = itemEmail["id"].ToString();
                        objYoutubeAccount.Emailid        = itemEmail["email"].ToString();
                        objYoutubeAccount.Ytusername     = itemEmail["given_name"].ToString();
                        objYoutubeAccount.Ytprofileimage = itemEmail["picture"].ToString();
                        objYoutubeAccount.Accesstoken    = access_token;
                        objYoutubeAccount.Refreshtoken   = refreshToken;
                        objYoutubeAccount.Isactive       = 1;
                        objYoutubeAccount.Entrydate      = DateTime.Now;
                        objYoutubeAccount.UserId         = user.Id;
                    }
                    catch (Exception ex)
                    {
                        logger.Error("itemEmail1 :" + ex.Message);
                        logger.Error("itemEmail1 :" + ex.StackTrace);
                        Console.WriteLine(ex.StackTrace);
                    }
                }

                foreach (var item in objarray)
                {
                    try
                    {
                        objYoutubeChannel.Id               = Guid.NewGuid();
                        objYoutubeChannel.Channelid        = item["id"].ToString();
                        objYoutubeChannel.Likesid          = item["contentDetails"]["relatedPlaylists"]["likes"].ToString();
                        objYoutubeChannel.Favoritesid      = item["contentDetails"]["relatedPlaylists"]["favorites"].ToString();
                        objYoutubeChannel.Uploadsid        = item["contentDetails"]["relatedPlaylists"]["uploads"].ToString();
                        objYoutubeChannel.Watchhistoryid   = item["contentDetails"]["relatedPlaylists"]["watchHistory"].ToString();
                        objYoutubeChannel.Watchlaterid     = item["contentDetails"]["relatedPlaylists"]["watchLater"].ToString();
                        objYoutubeChannel.Googleplususerid = ytuerid;
                        try
                        {
                            string viewcnt = item["statistics"]["viewCount"].ToString();
                            objYoutubeChannel.ViewCount = Convert.ToInt32(viewcnt);

                            string videocnt = item["statistics"]["videoCount"].ToString();
                            objYoutubeChannel.VideoCount = Convert.ToInt32(videocnt);

                            string commentcnt = item["statistics"]["commentCount"].ToString();
                            objYoutubeChannel.CommentCount = Convert.ToInt32(commentcnt);

                            string Subscribercnt = item["statistics"]["subscriberCount"].ToString();
                            objYoutubeChannel.SubscriberCount = Convert.ToInt32(Subscribercnt);

                            try
                            {
                                string str = item["statistics"]["hiddenSubscriberCount"].ToString();
                                if (str == "false")
                                {
                                    objYoutubeChannel.HiddenSubscriberCount = 0;
                                }
                                else
                                {
                                    objYoutubeChannel.HiddenSubscriberCount = 1;
                                }
                            }
                            catch (Exception ex)
                            {
                                logger.Error("aagaya1: " + ex);
                                Console.WriteLine(ex.StackTrace);
                            }
                        }
                        catch (Exception ex)
                        {
                            logger.Error("aagaya2: " + ex);
                            Console.WriteLine(ex.StackTrace);
                        }
                    }
                    catch (Exception ex)
                    {
                        logger.Error("aagaya3: " + ex);
                        Console.WriteLine(ex.StackTrace);
                        logger.Error(ex.StackTrace);
                        logger.Error(ex.Message);
                    }
                }
                //YoutubeChannelRepository.Add(objYoutubeChannel);
                SocialProfile            objSocialProfile            = new SocialProfile();
                SocialProfilesRepository objSocialProfilesRepository = new SocialProfilesRepository();
                objSocialProfile.Id            = Guid.NewGuid();
                objSocialProfile.UserId        = user.Id;
                objSocialProfile.ProfileId     = ytuerid;
                objSocialProfile.ProfileType   = "youtube";
                objSocialProfile.ProfileDate   = DateTime.Now;
                objSocialProfile.ProfileStatus = 1;
                logger.Error("aagaya");
                if (!objSocialProfilesRepository.checkUserProfileExist(objSocialProfile))
                {
                    objSocialProfilesRepository.addNewProfileForUser(objSocialProfile);

                    if (!objYoutubeAccountRepository.checkYoutubeUserExists(objYoutubeAccount))
                    {
                        logger.Error("Abhay");
                        YoutubeAccountRepository.Add(objYoutubeAccount);
                        logger.Error("Abhay account add ho gaya");
                        YoutubeChannelRepository.Add(objYoutubeChannel);
                        logger.Error("Channel account add ho gaya");
                        GroupRepository        objGroupRepository = new GroupRepository();
                        SocioBoard.Domain.Team team = (SocioBoard.Domain.Team)HttpContext.Current.Session["GroupName"];
                        Groups lstDetails           = objGroupRepository.getGroupName(team.GroupId);
                        if (lstDetails.GroupName == "Socioboard")
                        {
                            TeamMemberProfileRepository objTeamMemberProfileRepository = new TeamMemberProfileRepository();
                            TeamMemberProfile           teammemberprofile = new TeamMemberProfile();
                            teammemberprofile.Id               = Guid.NewGuid();
                            teammemberprofile.TeamId           = team.Id;
                            teammemberprofile.ProfileId        = objYoutubeAccount.Ytuserid;
                            teammemberprofile.ProfileType      = "youtube";
                            teammemberprofile.StatusUpdateDate = DateTime.Now;
                            objTeamMemberProfileRepository.addNewTeamMember(teammemberprofile);
                        }
                    }
                }
                else
                {
                    logger.Error("Suraj");
                    if (!objYoutubeAccountRepository.checkYoutubeUserExists(objYoutubeAccount))
                    {
                        YoutubeAccountRepository.Add(objYoutubeAccount);
                        YoutubeChannelRepository.Add(objYoutubeChannel);
                    }
                    else
                    {
                        Response.Redirect("Home.aspx");
                    }
                }

                Response.Redirect("Home.aspx");
            }
            catch (Exception Err)
            {
                Console.Write(Err.Message.ToString());
                logger.Error(Err.StackTrace);
                logger.Error(Err.Message);
            }
        }
Ejemplo n.º 9
0
        protected void Page_Load(object sender, EventArgs e)
        {
            oAuthToken        objToken    = new oAuthToken();
            GplusHelper       objGpHelper = new GplusHelper();
            UserRepository    objUserRepo = new UserRepository();
            PeopleController  obj         = new PeopleController();
            GooglePlusAccount objgpAcc    = new GooglePlusAccount();
            User user = new User();

            try
            {
                string objRefresh = objToken.GetRefreshToken(Request.QueryString["code"]);
                if (!objRefresh.StartsWith("["))
                {
                    objRefresh = "[" + objRefresh + "]";
                }
                JArray objArray = JArray.Parse(objRefresh);
                if (Session["login"] != null)
                {
                    if (Session["login"].ToString() == "googleplus")
                    {
                        user               = new User();
                        user.CreateDate    = DateTime.Now;
                        user.ExpiryDate    = DateTime.Now.AddMonths(1);
                        user.Id            = Guid.NewGuid();
                        user.PaymentStatus = "unpaid";
                    }
                }
                else
                {
                    /*User class in SocioBoard.Domain to check authenticated user*/
                    user = (User)Session["LoggedUser"];
                }
                foreach (var item in objArray)
                {
                    try
                    {
                        JArray objEmail   = objToken.GetUserInfo("me", item["access_token"].ToString());
                        JArray objProfile = obj.GetPeopleProfile("me", item["access_token"].ToString());
                        // user = (User)HttpContext.Current.Session["LoggedUser"];
                        foreach (var itemEmail in objEmail)
                        {
                            objgpAcc.EmailId = itemEmail["email"].ToString();
                        }
                        foreach (var itemProfile in objProfile)
                        {
                            objgpAcc.GpUserId       = itemProfile["id"].ToString();
                            objgpAcc.AccessToken    = item["access_token"].ToString();
                            objgpAcc.EntryDate      = DateTime.Now;
                            objgpAcc.GpProfileImage = itemProfile["image"]["url"].ToString();
                            objgpAcc.GpUserName     = itemProfile["displayName"].ToString();
                            objgpAcc.Id             = Guid.NewGuid();
                            objgpAcc.IsActive       = 1;
                            objgpAcc.RefreshToken   = item["refresh_token"].ToString();
                            objgpAcc.UserId         = user.Id;
                        }

                        if (Session["login"] != null)
                        {
                            if (string.IsNullOrEmpty(user.Password))
                            {
                                if (Session["login"].ToString() == "googleplus")
                                {
                                    if (objUserRepo.IsUserExist(objgpAcc.EmailId))//user.EmailId
                                    {
                                        // user = null;
                                        user = objUserRepo.getUserInfoByEmail(objgpAcc.EmailId);//user.EmailId
                                        if (!string.IsNullOrEmpty(user.Password))
                                        {
                                            //Session["LoggedUser"] = user;
                                            //Response.Redirect("Home.aspx");

                                            if (user.UserStatus == 1)
                                            {
                                                Session["LoggedUser"] = user;
                                                Response.Redirect("Home.aspx");
                                            }
                                            else
                                            {
                                                //check user is block or not
                                                Session["fblogout"] = "NOTACTIVATED";

                                                Response.Redirect("Default.aspx");
                                            }
                                        }
                                    }
                                    else
                                    {
                                        user.EmailId    = objgpAcc.EmailId;
                                        user.UserName   = objgpAcc.GpUserName;
                                        user.ProfileUrl = objgpAcc.GpProfileImage;
                                        user.UserStatus = 1;
                                        user.CreateDate = DateTime.Now;
                                        user.ExpiryDate = DateTime.Now.AddDays(30);
                                        UserRepository.Add(user);
                                    }
                                    Session["LoggedUser"] = user;
                                    objgpAcc.UserId       = user.Id;
                                }
                            }
                        }
                        objGpHelper.GetUerProfile(objgpAcc, item["access_token"].ToString(), item["refresh_token"].ToString(), user.Id);



                        if (Session["login"] != null)
                        {
                            if (string.IsNullOrEmpty(user.Password))
                            {
                                if (Session["login"].ToString() == "googleplus")
                                {
                                    // Response.Redirect("Pricing.aspx");
                                    Response.Redirect("NetworkLogin.aspx?type=Free");
                                }
                            }
                            else
                            {
                                Response.Redirect("Home.aspx");
                            }
                        }
                        else
                        {
                            Response.Redirect("Home.aspx");
                        }
                    }
                    catch (Exception ex)
                    {
                        logger.Error(ex.StackTrace);
                        Console.WriteLine(ex.StackTrace);
                    }
                }
            }
            catch (Exception Err)
            {
                Console.Write(Err.Message.ToString());
                logger.Error(Err.StackTrace);
            }
        }
Ejemplo n.º 10
0
        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));
        }
Ejemplo n.º 11
0
        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));
            }
        }
Ejemplo n.º 12
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);
                }
            }
        }