コード例 #1
0
        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));
            }
        }