protected virtual dynamic GetBatchResult(SocialNetworkServiceRequest request)
        {
            IEnumerable <BaseCommand> commands = request.Commands;
            var commandResult = new BaseCommandResult();

            FacebookBatchParameter[] batchParameters = commands.Select(c =>
                                                                       new FacebookBatchParameter {
                HttpMethod = HttpMethod.Get,
                Path       = DecorateCommandText(c.GetText())
            }).ToArray();
            return(Client.Batch(batchParameters));
        }
        private List <FacebookEntityMetadata> GetNodesMetadata(SocialNetworkServiceRequest request)
        {
            List <FacebookEntityMetadata> entitiesMetadata = new List <FacebookEntityMetadata>();

            request.Commands = GetNodesMetadataCommands(request.SocialIds);
            BaseCommandResult batchResults = ExecuteBatchCommand(request);

            foreach (dynamic batchResult in batchResults.Raw)
            {
                FacebookEntityMetadata facebookEntityMetadata = ToStatic <FacebookEntityMetadata>(batchResult);
                entitiesMetadata.Add(facebookEntityMetadata);
            }
            return(entitiesMetadata);
        }
        public virtual List <FacebookEntity> GetNodesData(SocialNetworkServiceRequest request)
        {
            List <FacebookEntity>         entities         = new List <FacebookEntity>();
            List <FacebookEntityMetadata> entitiesMetadata = GetNodesMetadata(request);

            request.Commands = GetNodesDataCommands(entitiesMetadata);
            BaseCommandResult batchResults = ExecuteBatchCommand(request);

            foreach (dynamic batchResult in batchResults.Raw)
            {
                FacebookEntity facebookEntity = ToStatic <FacebookEntity>(batchResult);
                entities.Add(facebookEntity);
            }
            return(entities);
        }
        /// <summary>
        /// ########## ##### ## ####### #######.
        /// </summary>
        /// <param name="request">######, ######## ######### ######.</param>
        /// <returns>########## ###### ## ####### #######.</returns>
        public virtual List <FacebookEntity> ExecuteSearch(SocialNetworkServiceRequest request)
        {
            List <FacebookEntity> entities     = new List <FacebookEntity>();
            BaseCommandResult     batchResults = ExecuteBatchCommand(request);

            foreach (dynamic batchResult in batchResults.Raw)
            {
                foreach (dynamic entity in batchResult.data)
                {
                    FacebookEntity facebookEntity = ToStatic <FacebookEntity>(entity);
                    entities.Add(facebookEntity);
                }
            }
            return(entities);
        }