コード例 #1
0
        internal async Task <Result> Add(FdAppliance appliance)
        {
            try
            {
                var validateResult = Validate(appliance, false, false);
                if (!validateResult.Success)
                {
                    return(validateResult);
                }
                using (var client = new FdClient(appliance))
                {
                    var result = await client.TestCredential();

                    if (!result.Success)
                    {
                        return(result);
                    }

                    var addResult = await FdApplianceConnector.Instance.Add(appliance);

                    if (addResult.Success)
                    {
                        await this.LoadAll();
                    }
                    return(addResult);
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error(ex, "Add");
                return(Result.Failed(100, "Add", ex));
            }
        }
コード例 #2
0
        public async Task <Result> Update(FdAppliance appliance, bool isUpdateCredential)
        {
            try
            {
                var validateResult = Validate(appliance, true, isUpdateCredential);
                if (!validateResult.Success)
                {
                    return(validateResult);
                }

                if (isUpdateCredential)//修改了密码
                {
                    using (var client = new FdClient(appliance))
                    {
                        var result = await client.TestCredential();

                        if (!result.Success)
                        {
                            return(result);
                        }
                    }
                }
                else
                {
                    var oldFdObj = await FdApplianceConnector.Instance.FindByHost(appliance.HostIP);

                    if (oldFdObj.Data == null)
                    {
                        return(Result.Failed(104, $"FusionDirector {appliance.HostIP} can not find."));
                    }
                    var oldFd = GetModelFromMpObject(oldFdObj.Data);
                    if (oldFd.Port != appliance.Port) //修改了端口
                    {
                        appliance.LoginPd = oldFd.LoginPd;
                        using (var client = new FdClient(appliance))
                        {
                            var result = await client.TestCredential();

                            if (!result.Success)
                            {
                                return(result);
                            }
                        }
                    }
                }

                var updateResult = await FdApplianceConnector.Instance.Update(appliance, isUpdateCredential);

                if (updateResult.Success)
                {
                    await this.LoadAll();
                }
                return(updateResult);
            }
            catch (Exception ex)
            {
                LogHelper.Error(ex, "Update");
                return(Result.Failed(100, "Update", ex));
            }
        }
コード例 #3
0
        internal async Task <Result> Test(FdAppliance appliance, bool isUpdate, bool isUpdateCredential)
        {
            try
            {
                var validateResult = Validate(appliance, isUpdate, isUpdateCredential);
                if (!validateResult.Success)
                {
                    return(validateResult);
                }

                var client = new FdClient(appliance);
                return(await client.TestCredential());
            }
            catch (Exception ex)
            {
                LogHelper.Error(ex, "Test");
                return(Result.Failed(100, "Test", ex));
            }
        }