/// <summary>
 /// Enumerate all replication protected items under vault.
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.SiteRecovery.IReplicationProtectedItemOperations.
 /// </param>
 /// <param name='skipToken'>
 /// Optional. Continuation Token.
 /// </param>
 /// <param name='parameters'>
 /// Optional. Protected items query parameter.
 /// </param>
 /// <param name='customRequestHeaders'>
 /// Optional. Request header parameters.
 /// </param>
 /// <returns>
 /// The response model for the list replicated protected items.
 /// </returns>
 public static Task<ReplicationProtectedItemListResponse> ListAllAsync(this IReplicationProtectedItemOperations operations, string skipToken, ProtectedItemsQueryParameter parameters, CustomRequestHeaders customRequestHeaders)
 {
     return operations.ListAllAsync(skipToken, parameters, customRequestHeaders, CancellationToken.None);
 }
        public void EnumerateProtectedItemsUnderFabric()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                var client = GetSiteRecoveryClient(CustomHttpHandler);

                var fabrics = client.Fabrics.List(RequestHeaders).Fabrics.ToList();
                List<ReplicationProtectedItem> itemsList = new List<ReplicationProtectedItem>();
                var queryParams = new ProtectedItemsQueryParameter
                {
                    SourceFabricName = fabrics.First().Name
                };

                var protectedItemsResponse = client.ReplicationProtectedItem.ListAll(
                    null,
                    queryParams,
                    RequestHeaders);
                itemsList.AddRange(protectedItemsResponse.ReplicationProtectedItems);
                while (protectedItemsResponse.NextLink != null)
                {
                    protectedItemsResponse = client.ReplicationProtectedItem.ListAllNext(
                        protectedItemsResponse.NextLink,
                        RequestHeaders);

                    itemsList.AddRange(protectedItemsResponse.ReplicationProtectedItems);
                }
            }
        }
 /// <summary>
 /// Enumerate all replication protected items under vault.
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.SiteRecovery.IReplicationProtectedItemOperations.
 /// </param>
 /// <param name='skipToken'>
 /// Optional. Continuation Token.
 /// </param>
 /// <param name='parameters'>
 /// Optional. Protected items query parameter.
 /// </param>
 /// <param name='customRequestHeaders'>
 /// Optional. Request header parameters.
 /// </param>
 /// <returns>
 /// The response model for the list replicated protected items.
 /// </returns>
 public static ReplicationProtectedItemListResponse ListAll(this IReplicationProtectedItemOperations operations, string skipToken, ProtectedItemsQueryParameter parameters, CustomRequestHeaders customRequestHeaders)
 {
     return Task.Factory.StartNew((object s) => 
     {
         return ((IReplicationProtectedItemOperations)s).ListAllAsync(skipToken, parameters, customRequestHeaders);
     }
     , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult();
 }
        public void EnumerateProtectedItemsUnderFabric()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                var client = GetSiteRecoveryClient(CustomHttpHandler);

                List<ReplicationProtectedItem> itemsList = new List<ReplicationProtectedItem>();
                var queryParams = new ProtectedItemsQueryParameter
                {
                    SourceFabricName = "2163c4b41217f3a2274ffa9914d6707b5a93b013683762e18378d0af4fe2ca0c"
                };

                var protectedItemsResponse = client.ReplicationProtectedItem.ListAll(
                    null,
                    queryParams,
                    RequestHeaders);
                itemsList.AddRange(protectedItemsResponse.ReplicationProtectedItems);
                while (protectedItemsResponse.NextLink != null)
                {
                    protectedItemsResponse = client.ReplicationProtectedItem.ListAllNext(
                        protectedItemsResponse.NextLink,
                        RequestHeaders);

                    itemsList.AddRange(protectedItemsResponse.ReplicationProtectedItems);
                }
            }
        }