Ho un'app MVVM con DataServices (usando mvvmlight).
In questo momento, lo sto usando come
var answer = await myDataService.PullList(categoryId);
if (answer.Status == Ok)
ObservableListOfItems.ReplaceWith(answer.Collection); // Show results
if (answer.Status == ConnectionLost)
// Handle connection lost state, show msg window or something
if (answer.Status == ParsingError)
// Handle parsing problem
dove
async Task<MyAnswer> PullList(int id)
{
// Just a wrapper around HttpWebRequest, returns String.Empty if something happened
var resultString = await NetworkManager.GetAsync(UrlGenerator.GenerateCategoryRequest(id));
if (String.IsNullOrEmpty(resultString))
return new MyAnswer {Status = ConnectionLost);
try
{
var parsedResult = JsonConvert.DeserializeObject<PocoProducts>();
return new MyAnswer {Status = Ok, Collection = parsedResult.List);
}
catch (Exception)
{
return new MyAnswer {Status = ParsingError; }
}
e
public class MyAnswer()
{
public List<Items> {get; set;}
public EnumStatuses Statuc {get; set;}
}
public enum EnumStatuses
{
Ok = 0,
ConnectionLost,
ParsingError
}
Quindi sono curioso, ho appena re-inventato delle eccezioni, vero?
PS: ha scritto un codice proprio qui, gli errori di battitura sono possibili, ma l'idea generale dovrebbe essere chiara