Skip to content

Commit 4f273e6

Browse files
author
jasper-schneider
committed
Incorporate feedback
1 parent 72c3cd0 commit 4f273e6

File tree

6 files changed

+30
-45
lines changed

6 files changed

+30
-45
lines changed

src/ResourceManager/Batch/Commands.Batch/Models/BatchClient.Files.cs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -82,15 +82,8 @@ public IEnumerable<PSTaskFile> ListTaskFiles(ListTaskFileOptions options)
8282
}
8383
}
8484
Func<ITaskFile, PSTaskFile> mappingFunction = f => { return new PSTaskFile(f); };
85-
if (options.MaxCount <= 0)
86-
{
87-
return new PSAsyncEnumerable<PSTaskFile, ITaskFile>(taskFiles, mappingFunction);
88-
}
89-
else
90-
{
91-
WriteVerbose(string.Format(Resources.MaxCount, options.MaxCount));
92-
return new PSAsyncEnumerable<PSTaskFile, ITaskFile>(taskFiles, mappingFunction).Take(options.MaxCount);
93-
}
85+
return PSAsyncEnumerable<PSTaskFile, ITaskFile>.CreateWithMaxCount(
86+
taskFiles, mappingFunction, options.MaxCount, () => WriteVerbose(string.Format(Resources.MaxCount, options.MaxCount)));
9487
}
9588
}
9689

src/ResourceManager/Batch/Commands.Batch/Models/BatchClient.Jobs.cs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -70,15 +70,8 @@ public IEnumerable<PSCloudJob> ListJobs(ListJobOptions options)
7070
{
7171
IEnumerableAsyncExtended<ICloudJob> jobs = wiManager.ListJobs(wiName, odata, options.AdditionalBehaviors);
7272
Func<ICloudJob, PSCloudJob> mappingFunction = j => { return new PSCloudJob(j); };
73-
if (options.MaxCount <= 0)
74-
{
75-
return new PSAsyncEnumerable<PSCloudJob, ICloudJob>(jobs, mappingFunction);
76-
}
77-
else
78-
{
79-
WriteVerbose(string.Format(Resources.MaxCount, options.MaxCount));
80-
return new PSAsyncEnumerable<PSCloudJob, ICloudJob>(jobs, mappingFunction).Take(options.MaxCount);
81-
}
73+
return PSAsyncEnumerable<PSCloudJob, ICloudJob>.CreateWithMaxCount(
74+
jobs, mappingFunction, options.MaxCount, () => WriteVerbose(string.Format(Resources.MaxCount, options.MaxCount)));
8275
}
8376
}
8477
}

src/ResourceManager/Batch/Commands.Batch/Models/BatchClient.Pools.cs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,8 @@ public IEnumerable<PSCloudPool> ListPools(ListPoolOptions options)
6464
{
6565
IEnumerableAsyncExtended<ICloudPool> pools = poolManager.ListPools(odata, options.AdditionalBehaviors);
6666
Func<ICloudPool, PSCloudPool> mappingFunction = p => { return new PSCloudPool(p); };
67-
if (options.MaxCount <= 0)
68-
{
69-
return new PSAsyncEnumerable<PSCloudPool, ICloudPool>(pools, mappingFunction);
70-
}
71-
else
72-
{
73-
WriteVerbose(string.Format(Resources.MaxCount, options.MaxCount));
74-
return new PSAsyncEnumerable<PSCloudPool, ICloudPool>(pools, mappingFunction).Take(options.MaxCount);
75-
}
67+
return PSAsyncEnumerable<PSCloudPool, ICloudPool>.CreateWithMaxCount(
68+
pools, mappingFunction, options.MaxCount, () => WriteVerbose(string.Format(Resources.MaxCount, options.MaxCount)));
7669
}
7770
}
7871
}

src/ResourceManager/Batch/Commands.Batch/Models/BatchClient.Tasks.cs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -80,15 +80,8 @@ public IEnumerable<PSCloudTask> ListTasks(ListTaskOptions options)
8080
}
8181
}
8282
Func<ICloudTask, PSCloudTask> mappingFunction = t => { return new PSCloudTask(t); };
83-
if (options.MaxCount <= 0)
84-
{
85-
return new PSAsyncEnumerable<PSCloudTask, ICloudTask>(tasks, mappingFunction);
86-
}
87-
else
88-
{
89-
WriteVerbose(string.Format(Resources.MaxCount, options.MaxCount));
90-
return new PSAsyncEnumerable<PSCloudTask, ICloudTask>(tasks, mappingFunction).Take(options.MaxCount);
91-
}
83+
return PSAsyncEnumerable<PSCloudTask, ICloudTask>.CreateWithMaxCount(
84+
tasks, mappingFunction, options.MaxCount, () => WriteVerbose(string.Format(Resources.MaxCount, options.MaxCount)));
9285
}
9386
}
9487

src/ResourceManager/Batch/Commands.Batch/Models/BatchClient.WorkItems.cs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,8 @@ public IEnumerable<PSCloudWorkItem> ListWorkItems(ListWorkItemOptions options)
6565
{
6666
IEnumerableAsyncExtended<ICloudWorkItem> workItems = wiManager.ListWorkItems(odata, options.AdditionalBehaviors);
6767
Func<ICloudWorkItem, PSCloudWorkItem> mappingFunction = w => { return new PSCloudWorkItem(w); };
68-
if (options.MaxCount <= 0)
69-
{
70-
return new PSAsyncEnumerable<PSCloudWorkItem, ICloudWorkItem>(workItems, mappingFunction);
71-
}
72-
else
73-
{
74-
WriteVerbose(string.Format(Resources.MaxCount, options.MaxCount));
75-
return new PSAsyncEnumerable<PSCloudWorkItem, ICloudWorkItem>(workItems, mappingFunction).Take(options.MaxCount);
76-
}
68+
return PSAsyncEnumerable<PSCloudWorkItem, ICloudWorkItem>.CreateWithMaxCount(
69+
workItems, mappingFunction, options.MaxCount, () => WriteVerbose(string.Format(Resources.MaxCount, options.MaxCount)));
7770
}
7871
}
7972
}

src/ResourceManager/Batch/Commands.Batch/Models/PSAsyncEnumerable.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
using System;
1616
using System.Collections;
1717
using System.Collections.Generic;
18+
using System.Linq;
1819
using System.Threading.Tasks;
1920
using Microsoft.Azure.Batch;
2021

@@ -58,6 +59,25 @@ public IAsyncEnumerator<T1> GetAsyncEnumerator()
5859
{
5960
return new PSAsyncEnumerator<T1, T2>(omAsyncEnumerable.GetAsyncEnumerator(), this.mappingFunction);
6061
}
62+
63+
internal static IEnumerable<T1> CreateWithMaxCount(
64+
IEnumerableAsyncExtended<T2> omAsyncEnumerable, Func<T2, T1> mappingFunction, int maxCount, Action logMaxCount = null)
65+
{
66+
PSAsyncEnumerable<T1, T2> asyncEnumerable = new PSAsyncEnumerable<T1, T2>(omAsyncEnumerable, mappingFunction);
67+
68+
if (maxCount <= 0)
69+
{
70+
return asyncEnumerable;
71+
}
72+
else
73+
{
74+
if (logMaxCount != null)
75+
{
76+
logMaxCount();
77+
}
78+
return asyncEnumerable.Take(maxCount);
79+
}
80+
}
6181
}
6282

6383
internal class PSAsyncEnumerator<T1, T2> : IAsyncEnumerator<T1>, IEnumerator<T1>

0 commit comments

Comments
 (0)