private void bwInsert_DoWork(object sender, DoWorkEventArgs e)
        {
            rawMaterial.ETD         = dtDefault;
            rawMaterial.IsETDUpdate = true;
            foreach (var upperRawMaterialView in upperComponentRawMaterialViewToDeleteList)
            {
                int upperComponentID = upperRawMaterialView.UpperComponents.UpperComponentID;
                UpperComponentRawMaterialController.Delete(productNo, upperComponentID);
            }
            if (upperComponentRawMaterialViewToInsertList.Count > 0)
            {
                rawMaterial.ETD = upperComponentRawMaterialViewToInsertList.Max(m => m.ETDReal);
            }

            foreach (var upperRawMaterialView in upperComponentRawMaterialViewToInsertList)
            {
                int      upperComponentID = upperRawMaterialView.UpperComponents.UpperComponentID;
                DateTime etd = TimeHelper.Convert(upperRawMaterialView.ETD);
                if (etd != dtDefault && etd != dtNothing)
                {
                    UpperComponentRawMaterialModel model = new UpperComponentRawMaterialModel()
                    {
                        ProductNo        = productNo,
                        UpperComponentID = upperComponentID,
                        ETD = etd,
                    };
                    UpperComponentRawMaterialController.Insert(model);
                    if (model.ETD > rawMaterial.ETD)
                    {
                        rawMaterial.ETD = model.ETD.Date;
                    }
                }
            }
        }
        private void bwImport_DoWork(object sender, DoWorkEventArgs e)
        {
            upperRawMaterialImportList = dgUpperComponents.Items.OfType <UpperComponentRawMaterialModel>().ToList();
            progressBar.Dispatcher.Invoke((Action)(() => progressBar.Maximum = upperRawMaterialImportList.Count));
            int index = 0;

            foreach (var upperImport in upperRawMaterialImportList)
            {
                index++;
                UpperComponentRawMaterialController.Insert(upperImport);
                dgUpperComponents.Dispatcher.Invoke((Action)(() =>
                {
                    dgUpperComponents.SelectedItem = upperImport;
                    dgUpperComponents.ScrollIntoView(upperImport);
                }));
                progressBar.Dispatcher.Invoke((Action)(() => progressBar.Value = index));
            }
        }