Based on danrhul danrhul's good answer answer
If group.Test.Count == 0
all the done work with IWorkgroup group
will be skipped. So you better change the execution flow.
foreach (var groupValue in jsonArray)
{
var groupObject = groupValue.GetObject();
String objectId = groupObject["ObjectID"].GetString();
var test = GetTestSessions(objectId);
if (test.Count == 0) { continue; }
IWorkgroup group = new Workgroup
{
GroupState = (int)groupObject["GroupState"].GetNumber(),
WorkgroupName = groupObject["WorkgroupName"].GetString(),
WorkgroupSecretary = groupObject["WorkgroupProba"].GetString(),
ObjectID = objectId,
Test = test
};
groups.Add(group);
}
With calling the extracted overloaded methods
private List<TestSession> GetTestSessions(String objectId)
{
return GetTestSessions(new Uri(WebApiUri + "api/workgroup/" + objectId));
}
private List<TestSession> GetTestSessions(Uri dataUri)
{
using (var client = new Windows.Web.Http.HttpClient())
{
var response = await client.GetAsync(dataUri).AsTask();
if (response.StatusCode == Windows.Web.Http.HttpStatusCode.Ok)
{
var jsonText = await response.Content.ReadAsStringAsync().GetResults();
return JsonConvert.DeserializeObject<List<TestSession>>(jsonText);
}
return new List<TestSession>();
}
}
Based on danrhul's good answer
If group.Test.Count == 0
all the done work with IWorkgroup group
will be skipped. So you better change the execution flow.
foreach (var groupValue in jsonArray)
{
var groupObject = groupValue.GetObject();
String objectId = groupObject["ObjectID"].GetString();
var test = GetTestSessions(objectId);
if (test.Count == 0) { continue; }
IWorkgroup group = new Workgroup
{
GroupState = (int)groupObject["GroupState"].GetNumber(),
WorkgroupName = groupObject["WorkgroupName"].GetString(),
WorkgroupSecretary = groupObject["WorkgroupProba"].GetString(),
ObjectID = objectId,
Test = test
};
groups.Add(group);
}
With calling the extracted overloaded methods
private List<TestSession> GetTestSessions(String objectId)
{
return GetTestSessions(new Uri(WebApiUri + "api/workgroup/" + objectId));
}
private List<TestSession> GetTestSessions(Uri dataUri)
{
using (var client = new Windows.Web.Http.HttpClient())
{
var response = await client.GetAsync(dataUri).AsTask();
if (response.StatusCode == Windows.Web.Http.HttpStatusCode.Ok)
{
var jsonText = await response.Content.ReadAsStringAsync().GetResults();
return JsonConvert.DeserializeObject<List<TestSession>>(jsonText);
}
return new List<TestSession>();
}
}
Based on danrhul's good answer
If group.Test.Count == 0
all the done work with IWorkgroup group
will be skipped. So you better change the execution flow.
foreach (var groupValue in jsonArray)
{
var groupObject = groupValue.GetObject();
String objectId = groupObject["ObjectID"].GetString();
var test = GetTestSessions(objectId);
if (test.Count == 0) { continue; }
IWorkgroup group = new Workgroup
{
GroupState = (int)groupObject["GroupState"].GetNumber(),
WorkgroupName = groupObject["WorkgroupName"].GetString(),
WorkgroupSecretary = groupObject["WorkgroupProba"].GetString(),
ObjectID = objectId,
Test = test
};
groups.Add(group);
}
With calling the extracted overloaded methods
private List<TestSession> GetTestSessions(String objectId)
{
return GetTestSessions(new Uri(WebApiUri + "api/workgroup/" + objectId));
}
private List<TestSession> GetTestSessions(Uri dataUri)
{
using (var client = new Windows.Web.Http.HttpClient())
{
var response = await client.GetAsync(dataUri).AsTask();
if (response.StatusCode == Windows.Web.Http.HttpStatusCode.Ok)
{
var jsonText = await response.Content.ReadAsStringAsync().GetResults();
return JsonConvert.DeserializeObject<List<TestSession>>(jsonText);
}
return new List<TestSession>();
}
}
Based on danrhul's good answer
If group.Test.Count == 0
all the done work with IWorkgroup group
will be skipped. So you better change the execution flow.
foreach (var groupValue in jsonArray)
{
var groupObject = groupValue.GetObject();
String objectId = groupObject["ObjectID"].GetString();
var test = GetTestSessions(objectId);
if (test.Count == 0) { continue; }
IWorkgroup group = new Workgroup
{
GroupState = (int)groupObject["GroupState"].GetNumber(),
WorkgroupName = groupObject["WorkgroupName"].GetString(),
WorkgroupSecretary = groupObject["WorkgroupProba"].GetString(),
ObjectID = objectId,
Test = test
};
groups.Add(group);
}
With calling the extracted overloaded methods
private List<TestSession> GetTestSessions(String objectId)
{
return GetTestSessions(new Uri(WebApiUri + "api/workgroup/" + objectId));
}
private List<TestSession> GetTestSessions(Uri dataUri)
{
using (var client = new Windows.Web.Http.HttpClient())
{
var response = await client.GetAsync(dataUri).AsTask();
if (response.StatusCode == Windows.Web.Http.HttpStatusCode.Ok)
{
var jsonText = await response.Content.ReadAsStringAsync().GetResults();
return JsonConvert.DeserializeObject<List<TestSession>>(jsonText);
}
return new List<TestSession>();
}
}