Ejemplo n.º 1
0
        public void LoadData(Guid pSystemID, Guid pTestGroupID, Action cback = null)
        {
            this.GetService <ModifyTestSystem>().ExecuteAsync(
                c => c.GetData(pSystemID),
                (result) =>
            {
                if (!result.Status)
                {
                    AppFramework.Context.ShowError(result.Message);
                    this.Close();
                    return;
                }
                callback = cback;

                vm.Model.SystemID       = result.Data.SystemID;
                vm.Model.SystemName     = result.Data.SystemName;
                vm.Model.DisplayName    = result.Data.DisplayName;
                vm.Model.DefaultSetting = result.Data.DefaultSetting;
                vm.Model.PortSetting    = result.Data.PortSetting;
                vm.Model.OrderID        = result.Data.OrderID;

                //设置窗体标题
                if (pSystemID == Guid.Empty)
                {
                    result.Data.TestGroupID = pTestGroupID;
                    this.Text = "添加测试项";
                }
                else
                {
                    pTestGroupID = result.Data.TestGroupID;
                    this.Text    = $"修改测试项 - {result.Data.SystemName}";
                }

                vm.Render(panelContent, new Padding(0, 15, 15, 0), "30%", true,
                          (name, control) =>
                {
                    if (name == "OrderID")
                    {
                        (control as NumericUpDown).Maximum = 10000;
                    }
                },
                          (name, control) =>
                {
                    switch (name)
                    {
                    case "SystemTypeID":
                        (control as ComboBox).UpdateDataSource(MeasuringManager.GetCalculateDataSource(), result.Data.SystemTypeID, (value) => {
                            vm.Model.SystemTypeID = value;
                        });
                        break;

                    case "DefaultComputeSign":
                        (control as ComboBox).UpdateDataSource(OperatorManager.GetComputeDataSource(), result.Data.DefaultComputeSign, (value) => {
                            vm.Model.DefaultComputeSign = value;
                        });
                        break;

                    case "TestGroupID":

                        var cb = (control as ComboBox);
                        this.GetService <ModifyTestSystem>().ExecuteAsync(c => c.GetTestGroupDataSource(pTestGroupID)
                                                                          , (source) =>
                        {
                            if (!source.Status)
                            {
                                return;
                            }
                            cb.UpdateDataSource(source.Data, result.Data.TestGroupID, (value) => {
                                vm.Model.TestGroupID = value;
                            });
                        });
                        break;

                    case "TemperatureSetting":
                        var ds4 = new BindingList <KeyValuePair <int, string> >();
                        ds4.Add(new KeyValuePair <int, string>(0, "多温度测试"));
                        ds4.Add(new KeyValuePair <int, string>(1, "常温测试"));

                        (control as ComboBox).UpdateDataSource(ds4, result.Data.TemperatureSetting, (value) => {
                            vm.Model.TemperatureSetting = value;
                        });
                        break;
                    }
                });
            });
        }