public async Task <Result <List <FdAppliance> > > LoadAll() { try { var getListResult = await FdApplianceConnector.Instance.All(); if (!getListResult.Success) { LogHelper.Error(getListResult.Cause, getListResult.Message); return(Result <List <FdAppliance> > .Failed(getListResult.Code, getListResult.Message, getListResult.Cause)); } this.AllItems = getListResult.Data.Select(x => GetModelFromMpObject(x)).ToList(); OnFilteredItemsChanged(this.AllItems); foreach (var appliance in this.AllItems) { if (PingFd(appliance.HostIP)) { appliance.LatestConnectInfo = "success"; appliance.LatestStatus = Constants.FdConnectionStatus.ONLINE; } else { appliance.DirectorVersion = string.Empty; appliance.LatestConnectInfo = "Can not connect the remote server."; appliance.LatestStatus = Constants.FdConnectionStatus.FAILED; LogHelper.Info("Can not connect the remote server.", $"PingFd Error:"); } try { using (var client = new FdClient(appliance)) { var result = await client.GetApplianceVersion(); appliance.DirectorVersion = result.CurrentVersion; } } catch (Exception e) { appliance.DirectorVersion = string.Empty; LogHelper.Error(e, $"GetApplianceVersion Error:"); } } OnFilteredItemsChanged(this.AllItems); return(Result <List <FdAppliance> > .Done(this.AllItems)); } catch (Exception ex) { LogHelper.Error(ex, "LoadAll"); return(Result <List <FdAppliance> > .Failed("LoadAll", ex)); } }