Exemplo n.º 1
0
        public void GetOperator_WhenAskedForSomethingThatDoesNotExist_ReturnsNull()
        {
            // Arrange
            var sut = new OperatorManager();

            // Act
            var res = sut.GetOperator("Magne Hoseth");

            // Assert
            res.Should().BeNull("we entered an invalid operator name");
        }
Exemplo n.º 2
0
            public void GetOperator_WhenCalledWithGreaterThan_ReturnsExpectedClass()
            {
                // Arrange
                var mgr = new OperatorManager();

                // Act
                var sut = mgr.GetOperator("GreaterThan");

                // Assert
                sut.Should().NotBeNull("the object should be properly set up to be returned from the OperatorManager");
            }
Exemplo n.º 3
0
        public void GetOperator_WhenAskedForValidOperator_ReturnsExpectedObject()
        {
            // Arrange
            var sut = new OperatorManager();

            // Act
            var res = sut.GetOperator("Equals");

            // Assert
            res.Should().NotBeNull("we should get a valid object back");
            res.Should().BeOfType <EqualsOperator>("that is the operator we asked for");
        }
        // GET: Operator/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Operator @operator = _om.GetOperator((int)id);

            if (@operator == null)
            {
                return(HttpNotFound());
            }
            return(View(@operator));
        }
Exemplo n.º 5
0
        private MeasurementTestResult Calculate(Guid specItemID, out WorkInfoSpecItem item)
        {
            item = MeasurementJob.SpecData.WorkInfoSpecItems.FirstOrDefault(q => q.SpecItemID == specItemID);
            if (item == null)
            {
                return(new MeasurementTestResult()
                {
                    Result = -1,
                    Message = "规格异常",
                    Data = 0D
                });
            }

            var testResult = MeasuringManager.Calculate(
                MeasurementJob.ReferenceData,
                TestData,
                item.SystemTypeID,
                item.TestGroupTestType,
                item.TestTemp,
                item.PortSetting,
                item.TestSetting
                );

            if (testResult.Result < 1)
            {
                return(testResult);
            }

            if (testResult.Data == double.MinValue)
            {
                testResult.Result  = -1;
                testResult.Message = "计算结果出错";
                return(testResult);
            }

            testResult.Result = 0;
            foreach (var resultSetting in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult.OrderBy(q => q.ResultID))
            {
                ComputeSettingItem computeItem = default(ComputeSettingItem);
                if (!item.ComputeSetting.TryGetValue(resultSetting.ResultID, out computeItem))
                {
                    testResult.Result  = -1;
                    testResult.Message = "规格判断标准设置错误";
                    return(testResult);
                }
                if (string.IsNullOrEmpty(computeItem.ComputeValue))
                {
                    continue;
                }

                if (OperatorManager.GetOperator(computeItem.ComputeSign).GetComputeResult(computeItem.ComputeValue, testResult.Data))
                {
                    testResult.Result  = resultSetting.ResultID;
                    testResult.Message = $"{item.ItemName} 通过";
                }
                else
                {
                    testResult.Message = "结果不符合规格";
                }
            }

            return(testResult);
        }
Exemplo n.º 6
0
        public void AddTestInfoRow(WorkInfoSpecItem specItem)
        {
            var row = testItem.NewRow();

            row["TestItemID"]   = specItem.SpecItemID;
            row["TestItemName"] = specItem.ItemName;

            foreach (var resultItem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult)
            {
                if (!specItem.ComputeSetting.ContainsKey(resultItem.ResultID))
                {
                    row[string.Format("TestItemCompute{0}", resultItem.ResultID)] = "N/A";
                }
                else
                {
                    var computeItem = specItem.ComputeSetting[resultItem.ResultID];
                    row[string.Format("TestItemCompute{0}", resultItem.ResultID)] = string.IsNullOrEmpty(computeItem.ComputeValue) ? "未设置" : OperatorManager.GetOperator(computeItem.ComputeSign).GetDisplayString(computeItem.ComputeValue);
                }
            }
            row["TestItemPortSetting"] = MeasurementController.GetPortName(specItem.PortSetting);
            if (string.IsNullOrEmpty("specItem.TestTemp") || !specItem.TestTemp.IsNumeric())
            {
                row["TestItemTemp"] = "";
            }
            else
            {
                row["TestItemTemp"] = $"{specItem.TestTemp}℃";
            }
            row["TestItemValue"]     = "";
            row["TestItemMaxValue"]  = "";
            row["TestItemMinValue"]  = "";
            row["TestItemLastValue"] = "-999";
            row["TestItemStatus"]    = -10;
            testItem.Rows.Add(row);

            var resultInfo = new ResultInfo()
            {
                TestInfoDataRow = row
            };

            testReslut[specItem.SpecItemID] = resultInfo;

            var dgvResult = default(DataGridView);

            if (!dgvResults.TryGetValue(specItem.TestTemp, out dgvResult))
            {
                return;
            }
            if (!specItem.TestSetting.IsDouble())
            {
                return;
            }

            var wl    = specItem.TestSetting.CastTo(1550D);
            var names = specItem.ItemName.Split(":");
            var name  = names.Length > 1 ? names[1] : names[0];

            names = name.Split("@");
            name  = names[0];

            var setting = TestPortSetting.Get(specItem.PortSetting);

            if (setting.ChannelID < 1 && name == "UL")
            {
                name = "IL";
            }

            if (!dgvResult.Columns.Contains(name))
            {
                dgvResult.Columns.Add(name, name);
                dgvResult.Columns[name].SortMode = DataGridViewColumnSortMode.NotSortable;
            }

            foreach (DataGridViewRow dataRow in dgvResult.Rows)
            {
                if (dataRow.Cells["Wavelength"].Value.ToString() == wl.ToString("F3") &&
                    dataRow.Cells["Port"].Value.ToString() == specItem.PortSetting.ToString())
                {
                    resultInfo.ResultViewCell = dataRow.Cells[name];
                }
            }
        }
Exemplo n.º 7
0
        private void CreateTestItemsData(DataTable ds)
        {
            ds.Columns.Add("TestItemID", Type.GetType("System.String"));
            ds.Columns.Add("TestID", Type.GetType("System.String"));
            ds.Columns.Add("SystemID", Type.GetType("System.String"));
            ds.Columns.Add("ItemName", Type.GetType("System.String"));
            ds.Columns.Add("TestTemp", Type.GetType("System.String"));
            ds.Columns.Add("TestSetting", Type.GetType("System.String"));
            foreach (var resultItem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult)
            {
                ds.Columns.Add(string.Format("TestItemCompute{0}", resultItem.ResultID), Type.GetType("System.String"));
            }

            ds.Columns.Add("ItemValue", Type.GetType("System.String"));
            ds.Columns.Add("ItemResult", Type.GetType("System.String"));
            ds.Columns.Add("ItemResultString", Type.GetType("System.String"));
            ds.Columns.Add("OrderID", Type.GetType("System.String"));

            foreach (var testItem in testData.TestInfo.TestItems)
            {
                var row = ds.NewRow();
                row["TestItemID"]  = testItem.TestItemID;
                row["TestID"]      = testItem.TestID;
                row["SystemID"]    = testItem.SystemID;
                row["ItemName"]    = testItem.ItemName;
                row["TestTemp"]    = testItem.TestTemp;
                row["TestSetting"] = testItem.TestInfo;
                var computeSetting = testItem.ComputeSetting.FromJsonString <Dictionary <int, BusinessLogic.Model.ComputeSettingItem> >();
                foreach (var resultItem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult)
                {
                    if (!computeSetting.ContainsKey(resultItem.ResultID))
                    {
                        row[string.Format("TestItemCompute{0}", resultItem.ResultID)] = "N/A";
                    }
                    else
                    {
                        var computeItem = computeSetting[resultItem.ResultID];
                        row[string.Format("TestItemCompute{0}", resultItem.ResultID)] = string.IsNullOrEmpty(computeItem.ComputeValue) ? "未设置" : OperatorManager.GetOperator(computeItem.ComputeSign).GetDisplayString(computeItem.ComputeValue);
                    }
                }
                row["ItemValue"]        = testItem.ItemValue;
                row["ItemResult"]       = testItem.ItemResult;
                row["ItemResultString"] = BaseSettingsManager.Get <ResultSettings>()[testItem.ItemResult].ResultText;
                row["OrderID"]          = testItem.OrderID;
                ds.Rows.Add(row);
            }
        }
Exemplo n.º 8
0
        public Dictionary <int, ComputeSettingItem> GetSpec(int temp)
        {
            var result = new Dictionary <int, ComputeSettingItem>();

            if (temp < 0 || temp > TempSetting.Length)
            {
                throw new Exception("温度设置错误");
            }

            var tempString = TempSetting[temp];

            if (string.IsNullOrEmpty(tempString))
            {
                return(result);
            }

            if (cbNoCheck.Checked)
            {
                foreach (var resultitem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult)
                {
                    var tbSpec = GetSpecTextBox(resultitem.ResultID, temp);

                    result[resultitem.ResultID] = new ComputeSettingItem()
                    {
                        ComputeSign  = "≥,≤",
                        ComputeValue = "-10086,10086"
                    };
                }

                return(result);
            }

            foreach (var resultitem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult)
            {
                var tbSpec = GetSpecTextBox(resultitem.ResultID, temp);

                if (resultitem.ResultType == 1 && (tbSpec == null || string.IsNullOrEmpty(tbSpec.Text)))
                {
                    return(new Dictionary <int, ComputeSettingItem>());
                }
                var spec = cbSpec.SelectedValue;
                if (spec == null)
                {
                    cbSpec.Focus();
                    throw new Exception("请选择计算符号");
                }
                if (tbSpec != null && !string.IsNullOrEmpty(tbSpec.Text))
                {
                    var specCompute = OperatorManager.GetOperator(spec.ToString());
                    if (!specCompute.Validation(tbSpec.Text))
                    {
                        tbSpec.Focus();
                        throw new Exception(string.Format("{0} 规格设置 {1} 格式错误,请检查。", BindingTestSystem.SystemName, tbSpec.Text));
                    }
                }
                result[resultitem.ResultID] = new ComputeSettingItem()
                {
                    ComputeSign  = spec.ToString(),
                    ComputeValue = tbSpec == null ? "" : tbSpec.Text
                };
            }

            return(result);
        }
Exemplo n.º 9
0
        private void btSave_Click(object sender, EventArgs e)
        {
            var computeSetting = new Dictionary <int, ComputeSettingItem>();
            var sign           = cbSpec.SelectedValue;

            if (sign == null)
            {
                AppFramework.Context.ShowError("请选择规格符号!");
                return;
            }
            foreach (var item in tbSpecs)
            {
                var value       = item.Value.Text;
                var specCompute = OperatorManager.GetOperator(sign.ToString());
                if (!specCompute.Validation(value))
                {
                    AppFramework.Context.ShowError("规格设置格式错误,请检查。");
                    return;
                }
                computeSetting[item.Key] = new ComputeSettingItem()
                {
                    ComputeSign  = sign.ToString(),
                    ComputeValue = value
                };
            }
            vm.Model.ComputeSetting = computeSetting.ToJsonString();
            var testSystem = BaseSettingsManager.Get <SystemGroupSetting>().GetTestSystemItem(vm.Model.SystemID);

            if (testSystem == null)
            {
                AppFramework.Context.ShowError("测试系统不存在!");
                return;
            }
            var errroString = "";

            if (!MeasuringManager.CheckSetting(testSystem.SystemTypeID, vm.Model.TestInfo, out errroString))
            {
                AppFramework.Context.ShowError(errroString);
                return;
            }
            vm.Model.ItemName = MeasuringManager.GetSettingItemName(testSystem.DisplayName, vm.Model.TestInfo, testSystem.PortSetting);

            var validate = vm.Validate();

            if (validate.HasError)
            {
                validate.ShowErrorMessage("保存失败");
                return;
            }
            var specitem = new SpecItem();

            specitem.SpecItemID     = vm.Model.SpecItemID;
            specitem.SeqID          = vm.Model.SeqID;
            specitem.SystemID       = vm.Model.SystemID;
            specitem.ItemName       = vm.Model.ItemName;
            specitem.TestTemp       = vm.Model.TestTemp;
            specitem.TestInfo       = vm.Model.TestInfo;
            specitem.ComputeSetting = vm.Model.ComputeSetting;
            specitem.OrderID        = vm.Model.OrderID;
            AppFramework.Context.ShowAlert("更新成功", "更新项目");
            callback?.Invoke(specitem);
            this.Close();
        }
Exemplo n.º 10
0
        private void LoadSpecItems()
        {
            if (!this.IsNormalState())
            {
                AppFramework.Context.ShowError("规格编辑窗体已经关闭");
                return;
            }

            int index = 0;

            if (dgvSeq.SelectedRows.Count > 0)
            {
                index = dgvSeq.SelectedRows[0].Index;
            }

            dtSpecItem.Rows.Clear();

            foreach (var item in specItems)
            {
                var testSystem = BaseSettingsManager.Get <SystemGroupSetting>().GetTestSystemItem(item.SystemID);
                if (testSystem == null)
                {
                    continue;
                }

                var row = dtSpecItem.NewRow();
                row["TestItemID"]   = item.SpecItemID;
                row["TestItemName"] = item.ItemName;
                row["TestItemTemp"] = item.TestTemp;
                row["TestItemInfo"] = item.TestInfo;
                row["TestItemPort"] = testSystem.PortSetting;

                foreach (var resultItem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult)
                {
                    var computeSetting = item.ComputeSetting.FromJsonString <Dictionary <int, ComputeSettingItem> >();
                    if (!computeSetting.ContainsKey(resultItem.ResultID))
                    {
                        row[string.Format("TestItemCompute{0}", resultItem.ResultID)] = "N/A";
                    }
                    else
                    {
                        var computeItem = computeSetting[resultItem.ResultID];
                        row[string.Format("TestItemCompute{0}", resultItem.ResultID)] = string.IsNullOrEmpty(computeItem.ComputeValue) ? "未设置" : OperatorManager.GetOperator(computeItem.ComputeSign).GetDisplayString(computeItem.ComputeValue);
                    }
                }
                row["TestItemOrder"] = item.OrderID;
                dtSpecItem.Rows.Add(row);
            }

            if (dgvSeq.Rows.Count > 0)
            {
                if (index >= dgvSeq.Rows.Count)
                {
                    index = dgvSeq.Rows.Count - 1;
                }
                dgvSeq.CurrentCell = dgvSeq.Rows[index].Cells[3];
            }
        }