/// <summary>
        /// ########## ###### #######.
        /// </summary>
        /// <param name="request">######, ######## ######### #########.</param>
        /// <returns>###### #######.</returns>
        public string GetAccessToken(SocialNetworkServiceRequest request)
        {
            Log.Debug("GetAccessToken");
            SocialAccount socialAccount = GetSocialAccount(request);

            return(socialAccount.AccessToken);
        }
        /// <summary>
        /// ####### ####### ###### ## ####### #######.
        /// </summary>
        /// <param name="request">######, ######## ######### ########.</param>
        /// <returns>######### ########## ######.</returns>
        public virtual bool CreateSocialAccount(SocialNetworkServiceRequest request)
        {
            SocialAccount currentSocialAccount = FindSocialAccount(request);

            if (currentSocialAccount != null && !currentSocialAccount.Public)
            {
                throw new DublicateDataException("SocialAccount");
            }
            string        accessToken   = GetNewSocialAccountAccessToken(request);
            string        consumerKey   = GetConsumerKey(request);
            Guid          typeId        = request.Type;
            Guid          userId        = request.User;
            string        socialId      = request.SocialId;
            SocialAccount socialAccount = new SocialAccount(UserConnection)
            {
                Name        = "Name",
                Public      = false,
                AccessToken = accessToken,
                ConsumerKey = consumerKey,
                TypeId      = typeId,
                UserId      = userId,
                SocialId    = socialId
            };

            socialAccount.SetDefColumnValues();
            socialAccount.Saving += (object sender, EntityBeforeEventArgs e) => {
                SocialAccountSaving((SocialAccount)sender, request);
            };
            return(socialAccount.Save());
        }
        /// <summary>
        /// ########## ###### #######.
        /// </summary>
        /// <param name="request">######, ######## ######### #########.</param>
        /// <returns>###### #######.</returns>
        public string FindAccessToken(SocialNetworkServiceRequest request)
        {
            Log.Debug("FindAccessToken");
            SocialAccount socialAccount = FindSocialAccount(request);

            return((socialAccount != null) ? socialAccount.AccessToken : string.Empty);
        }
        /// <summary>
        /// ########## ########## # ####### ####### #######.
        /// </summary>
        /// <param name="request">######, ######## ######### ######### ####### #######.</param>
        /// <returns>########## # ####### ####### #######.</returns>
        public AccessTokenInfo DebugCurrentAccessToken(SocialNetworkServiceRequest request)
        {
            string accessToken = GetAccessToken(request);

            request.AccessToken = accessToken;
            return(DebugAccessToken(request));
        }
        /// <summary>
        /// ########## ####### ###### ## ####### #######.
        /// </summary>
        /// <param name="request">######, ######## ######### #########.</param>
        /// <returns>####### ###### ## ####### #######.</returns>
        public virtual SocialAccount FindSocialAccount(SocialNetworkServiceRequest request)
        {
            Log.Debug("FindSocialAccount");
            EntitySchema      socialAccountSchema = UserConnection.EntitySchemaManager.GetInstanceByName("SocialAccount");
            EntitySchemaQuery esq = new EntitySchemaQuery(socialAccountSchema);

            esq.PrimaryQueryColumn.IsAlwaysSelect = true;
            esq.AddColumn("AccessToken");
            esq.AddColumn("ConsumerKey");
            esq.AddColumn("Login");
            esq.AddColumn("Name");
            esq.AddColumn("Public").OrderByAsc();
            esq.AddColumn("SocialId");
            esq.AddColumn("Type");
            esq.AddColumn("User");
            EntitySchemaQueryFilterCollection filters = esq.Filters;

            filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Type", request.Type));
            filters.Add(new EntitySchemaQueryFilterCollection(esq,
                                                              LogicalOperationStrict.Or,
                                                              esq.CreateFilterWithParameters(FilterComparisonType.Equal, "User", request.User),
                                                              esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Public", true)));
//			esq.Cache = UserConnection.WorkspaceCache.WithLocalCaching
//			esq.CacheItemName
            EntityCollection socialAccounts = esq.GetEntityCollection(UserConnection);

            foreach (SocialAccount socialAccount in socialAccounts)
            {
                return(socialAccount);
            }
            return(null);
        }
 /// <summary>
 /// ######### ######### # ######## #######.
 /// </summary>
 /// <param name="request">######, ######## ######### #######.</param>
 /// <returns>######### ########## #######.</returns>
 public BaseCommandResult ExecuteBatchCommand(SocialNetworkServiceRequest request)
 {
     PrepareCommandExecutionContext(request);
     return(new BaseCommandResult {
         Raw = GetBatchResult(request)
     });
 }
        protected string GetSocialAccountLogin(SocialNetworkServiceRequest request)
        {
            request.Command = GetSocialAccountLoginCommand(request.SocialId);
            FacebookEntity facebookEntity = ExecuteCommand <FacebookEntity>(request);

            return(facebookEntity.Name);
        }
        /// <summary>
        /// ########## ########## ## ####### ###### ## ####### #######.
        /// </summary>
        /// <param name="request">######, ######## ######### #########.</param>
        /// <returns>########## ## ####### ###### ## ####### #######.</returns>
        public virtual SocialAccountInfo GetSocialAccountInfo(SocialNetworkServiceRequest request)
        {
            Log.Debug("GetSocialAccountInfo");
            SocialAccount socialAccount = GetSocialAccount(request);

            return(new SocialAccountInfo(socialAccount));
        }
 protected override void InitSocialNetworkClient(SocialNetworkServiceRequest request)
 {
     base.InitSocialNetworkClient(request);
     AppSecretProof = GetAppSecretProof(request);
     ClientVersion  = GetConsumerVersion(request);
     Client         = new FacebookClient(AccessToken);
 }
Ejemplo n.º 10
0
 public BaseCommandResult RevokeCurrentAccessToken(SocialNetworkServiceRequest request)
 {
     try {
         return(ServerConnector.RevokeCurrentAccessToken(request));
     } catch (Exception e) {
         return(ServerConnector.HandleException <BaseCommandResult>(e));
     }
 }
Ejemplo n.º 11
0
 public BaseCommandResult ExecuteBatchCommand(SocialNetworkServiceRequest request)
 {
     try {
         return(ServerConnector.ExecuteBatchCommand(request));
     } catch (Exception e) {
         return(ServerConnector.HandleException <BaseCommandResult>(e));
     }
 }
        protected AccessTokenInfo GetAppAccessTokenInfo(SocialNetworkServiceRequest request)
        {
            string consumerKey    = GetConsumerKey(request);
            string consumerSecret = GetConsumerSecret(request);

            request.Command = GetAppAccessTokenInfoCommand(consumerKey, consumerSecret);
            return(ExecuteCommand <AccessTokenInfo>(request));
        }
        /// <summary>
        /// ############# ###### #######.
        /// </summary>
        /// <param name="request">######, ######## ######### #########.</param>
        /// <returns><c>true</c>, #### ######### ###### #######;##### - <c>false</c>.</returns>
        public bool SetAccessToken(SocialNetworkServiceRequest request)
        {
            Log.Debug("SetAccessToken");
            SocialAccount socialAccount = GetSocialAccount(request);

            socialAccount.AccessToken = request.AccessToken;
            return(socialAccount.Save());
        }
        /// <summary>
        /// ######### ############ ######## ####### #######.
        /// </summary>
        /// <param name="request">######, ######## ######### ######### ####### #######.</param>
        public virtual void CheckCurrentAccessToken(SocialNetworkServiceRequest request)
        {
            AccessTokenInfo accessTokenInfo = DebugCurrentAccessToken(request);

            if (!accessTokenInfo.IsValid)
            {
                throw new InvalidAccessTokenException();
            }
        }
Ejemplo n.º 15
0
 public ConfigurationServiceResponse CheckCanOperate(SocialNetworkServiceRequest request)
 {
     try {
         ServerConnector.CheckCanOperate(request);
         return(new ConfigurationServiceResponse());
     } catch (Exception e) {
         return(ServerConnector.HandleException <ConfigurationServiceResponse>(e));
     }
 }
        /// <summary>
        /// ######### ####### ####### ###### ## ####### #######.
        /// </summary>
        /// <param name="request">######, ######## ######### ####### ######.</param>
        public virtual void CheckSocialAccount(SocialNetworkServiceRequest request)
        {
            SocialAccount socialAccount = FindSocialAccount(request);

            if (socialAccount == null)
            {
                throw new MissingSocialAccountException();
            }
        }
        /// <summary>
        /// ####### ####### ###### ## ####### #######.
        /// </summary>
        /// <param name="request">######, ######## ######### ########.</param>
        /// <returns>######### ########## ######.</returns>
        public override bool CreateSocialAccount(SocialNetworkServiceRequest request)
        {
            bool saveResult = base.CreateSocialAccount(request);

            if (saveResult)
            {
                SetInitialSocialAccountProperties(request);
            }
            return(saveResult);
        }
        protected virtual string GetConsumerSecret(SocialNetworkServiceRequest request)
        {
            string consumerSecret = GetSysSettingValue <string>(ConsumerSecretSysSettingName);

            if (consumerSecret.IsNullOrEmpty())
            {
                throw new MissingConsumerSecretException();
            }
            return(consumerSecret);
        }
        protected string GetAppSecretProof(SocialNetworkServiceRequest request)
        {
            if (UseSharedApplication)
            {
                return(GetAppSecretProofRemotely(request));
            }
            string accessToken    = GetAccessToken(request);
            string consumerSecret = GetConsumerSecret(request);

            return(GenerateAppSecretProof(accessToken, consumerSecret));
        }
Ejemplo n.º 20
0
 public FacebookEntitiesResponse GetNodesData(SocialNetworkServiceRequest request)
 {
     try {
         List <FacebookEntity> entities = ServerConnector.GetNodesData(request);
         return(new FacebookEntitiesResponse {
             Entities = entities
         });
     } catch (Exception e) {
         return(ServerConnector.HandleException <FacebookEntitiesResponse>(e));
     }
 }
Ejemplo n.º 21
0
 public SearchResult ExecuteSearch(SocialNetworkServiceRequest request)
 {
     try {
         List <FacebookEntity> entities = ServerConnector.ExecuteSearch(request);
         return(new SearchResult {
             Entities = entities
         });
     } catch (Exception e) {
         return(ServerConnector.HandleException <SearchResult>(e));
     }
 }
        protected virtual string GetLongLivedAccessToken(SocialNetworkServiceRequest request)
        {
            AccessTokenInfo accessTokenInfo      = GetLongLivedAccessTokenInfo(request);
            string          longLivedAccessToken = accessTokenInfo.AccessToken;

            if (longLivedAccessToken.IsNullOrEmpty())
            {
                throw new ItemNotFoundException("LongLivedAccessToken");
            }
            return(longLivedAccessToken);
        }
        protected AccessTokenInfo GetLongLivedAccessTokenInfoRemotely(SocialNetworkServiceRequest request)
        {
            string  accessToken = GetRequestAccessToken(request);
            string  longLivedAccessTokenString = ExecuteConsumerInfoServiceMethod <string>("GetLongLivedAccessTokenInfoFacebook", accessToken);
            JObject accessTokenInfo            = JObject.Parse(longLivedAccessTokenString);
            JValue  longLivedAccessToken       = (JValue)accessTokenInfo["access_token"];

            return(new AccessTokenInfo {
                AccessToken = longLivedAccessToken.Value.ToString()
            });
        }
        protected virtual bool SetInitialSocialAccountProperties(SocialNetworkServiceRequest request)
        {
            SocialAccount socialAccount = GetSocialAccount(request);

            if (UseLongLivedAccessToken)
            {
                socialAccount.AccessToken = GetLongLivedAccessToken(request);
            }
            socialAccount.Login = GetSocialAccountLogin(request);
            return(socialAccount.Save());
        }
        /// <summary>
        /// ########## ####### ###### #######.
        /// </summary>
        /// <param name="request">######, ######## ######### ######### ####### #######.</param>
        /// <returns>######### ########## #######.</returns>
        public BaseCommandResult RevokeCurrentAccessToken(SocialNetworkServiceRequest request)
        {
            PrepareCommandExecutionContext(request);
            string  commandText   = DecorateCommandText("me/permissions");
            dynamic apiCallResult = ExecuteDeleteCommand(commandText);

            return(new BaseCommandResult()
            {
                Text = apiCallResult.ToString()
            });
        }
        /// <summary>
        /// ########## ####### ###### ## ####### #######.
        /// </summary>
        /// <param name="request">######, ######## ######### #########.</param>
        /// <returns>####### ###### ## ####### #######.</returns>
        public virtual SocialAccount GetSocialAccount(SocialNetworkServiceRequest request)
        {
            Log.Debug("GetSocialAccount");
            var socialAccount = FindSocialAccount(request);

            if (socialAccount != null)
            {
                return(socialAccount);
            }
            throw new MissingSocialAccountException();
        }
Ejemplo n.º 27
0
 public DebugAccessTokenResponse DebugAccessToken(SocialNetworkServiceRequest request)
 {
     try {
         AccessTokenInfo accessTokenInfo = ServerConnector.DebugAccessToken(request);
         return(new DebugAccessTokenResponse()
         {
             AccessTokenInfo = accessTokenInfo
         });
     } catch (Exception e) {
         return(ServerConnector.HandleException <DebugAccessTokenResponse>(e));
     }
 }
 /// <summary>
 /// ########## ########## # ########## ## ####### #######.
 /// </summary>
 /// <param name="request">######, ######## ######### #########.</param>
 /// <returns>########## # ########## ## ####### #######.</returns>
 public virtual ConsumerInfo GetConsumerInfo(SocialNetworkServiceRequest request)
 {
     if (UseSharedApplication)
     {
         return(GetConsumerInfoRemotely(request));
     }
     return(new ConsumerInfo {
         Key = GetConsumerKey(request),
         Secret = GetConsumerSecret(request),
         Version = GetConsumerVersion(request)
     });
 }
Ejemplo n.º 29
0
 public SocialAccountInfoResponse GetSocialAccountInfo(SocialNetworkServiceRequest request)
 {
     try {
         SocialAccountInfo socialAccountInfo = ServerConnector.GetSocialAccountInfo(request);
         return(new SocialAccountInfoResponse()
         {
             SocialAccountInfo = socialAccountInfo
         });
     } catch (Exception e) {
         return(ServerConnector.HandleException <SocialAccountInfoResponse>(e));
     }
 }
        private SocialAccount FetchSocialAccount(SocialNetworkServiceRequest request)
        {
            SocialAccount socialAccount            = new SocialAccount(UserConnection);
            Dictionary <string, object> conditions = new Dictionary <string, object> {
                { "User", request.User },
                { "Type", request.Type }
            };
            bool socialAccountExists = socialAccount.FetchFromDB(conditions);

            Log.DebugFormat("SocialAccountExists: [{0}]", socialAccountExists);
            return(socialAccountExists ? socialAccount : null);
        }