using DataRWDAL;
|
using HxEnum;
|
using System;
|
using System.Collections.Generic;
|
using System.Collections.ObjectModel;
|
using System.Linq;
|
using System.Windows;
|
using System.Windows.Controls;
|
using System.Windows.Input;
|
using System.Windows.Media;
|
using XCommon.Log;
|
using XHandler.Class;
|
using XHandler.Class.DataEx;
|
using XHandler.View.Com;
|
using XHandler.View.Consumables;
|
using XHandler.View.MethodProperty;
|
using XImagingXhandler.XDAL;
|
using XCoreBLL;
|
using System.Collections;
|
using DataEntity.Share;
|
|
namespace XHandler.View
|
{
|
/// <summary>
|
/// ConsumableManagement.xaml 的交互逻辑
|
/// </summary>
|
public partial class ConsumableManagement : UserControl
|
{
|
ObservableCollection<Labware> labwareList;
|
Labware selectLabware = null;
|
Labware copyLabware = null;
|
PlateSetting plateSetting = null;
|
LatticeSetting latticeSetting = null;
|
TipsSetting tipsSetting = null;
|
ThroughSetting throughSetting = null;
|
TipBoxSetting tipBoxSetting = null;
|
LidSetting lidSetting = null;
|
CircularDishSetting circularDishSetting = null;
|
CentrifugalSetting centrifugalSetting = null;
|
LabwareCaretaker labwareCaretaker = new LabwareCaretaker();
|
OperateAuditLogBll operateAuditLogBll = new OperateAuditLogBll();
|
LogAduitHelper logAduitHelper = new LogAduitHelper();
|
|
public ConsumableManagement()
|
{
|
InitializeComponent();
|
}
|
|
#region 观察者模式更新所有应用的耗材
|
// 保存观察者耗材列表
|
public List<IConsumableObserver> observers = new List<IConsumableObserver>();
|
|
public void AddObserver(IConsumableObserver ob)
|
{
|
observers.Add(ob);
|
}
|
|
public void RemoveObserver(IConsumableObserver ob)
|
{
|
observers.Remove(ob);
|
}
|
public void Update()
|
{
|
// 遍历订阅者列表进行通知
|
foreach (IConsumableObserver ob in observers)
|
{
|
if (ob != null)
|
{
|
ob.ReceiveAndUpdate(this);
|
}
|
}
|
}
|
#endregion
|
|
private void RadioButton_Checked(object sender, RoutedEventArgs e)
|
{
|
RadioButton btn = (RadioButton)sender;
|
if (btn.Name == "rbBaseSetting")
|
{
|
gridBaseSetting.Visibility = Visibility.Visible;
|
if (selectLabware != null)
|
{
|
if (selectLabware.labware_type_id == "10")
|
{
|
centrifugalOtherSetting.Visibility = Visibility.Collapsed;
|
}
|
else
|
{
|
otherSetting.Visibility = Visibility.Collapsed;
|
}
|
}
|
else
|
{
|
otherSetting.Visibility = Visibility.Collapsed;
|
}
|
|
}
|
else if (btn.Name == "rbOtherSetting")
|
{
|
gridBaseSetting.Visibility = Visibility.Collapsed;
|
if (selectLabware != null)
|
{
|
if (selectLabware.labware_type_id == "10")
|
{
|
centrifugalOtherSetting.Visibility = Visibility.Visible;
|
}
|
else
|
{
|
otherSetting.Visibility = Visibility.Visible;
|
}
|
}
|
else
|
{
|
otherSetting.Visibility = Visibility.Visible;
|
}
|
}
|
}
|
|
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
{
|
// 放这写:解决更新耗材信息后,再次打开画面没被刷新的问题
|
ObservableCollection<LabwareType> labwareTypeList = DataModule.getInstance().GetLabwareTypes();
|
if (labwareTypeList.FirstOrDefault(x => x.labwaretype_name.Equals("请选择")) != null)
|
{
|
|
}
|
else
|
{
|
labwareTypeList.Insert(0, new LabwareType { labwaretype_id = "-1", labwaretype_name = "请选择" });
|
}
|
cbLabwareType.ItemsSource = labwareTypeList;
|
labwareList = DataModule.getInstance().GetLabwares();
|
lvConsumable.ItemsSource = labwareList;
|
|
//添加耗材集合进入备忘录
|
LabwareMemento labwareMemento = new LabwareMemento(labwareList);
|
labwareCaretaker.LabwareMementoDic.Add(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), labwareMemento);
|
rbBaseSetting.IsChecked = true;
|
|
if (gridBaseSetting.Children.Count == 0)
|
{
|
PlateSetting ps = new PlateSetting();
|
gridBaseSetting.Children.Add(ps);
|
}
|
cbLabwareType.SelectedIndex = 0;
|
}
|
|
private void lvConsumable_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
|
|
if (lvConsumable.SelectedIndex < 0)
|
return;
|
|
Labware labware = lvConsumable.SelectedItem as Labware;
|
|
selectLabware = DeepCopyByReflection.Copy(labware);
|
baseInfo.SetLabware(selectLabware);
|
|
otherSetting.SetLabware(selectLabware);
|
centrifugalOtherSetting.SetLabware(selectLabware);
|
if (selectLabware.labware_type_id == "10")
|
{
|
if((bool)rbOtherSetting.IsChecked)
|
{
|
otherSetting.Visibility = Visibility.Collapsed;
|
centrifugalOtherSetting.Visibility = Visibility.Visible;
|
}
|
else
|
{
|
|
}
|
}
|
else
|
{
|
if ((bool)rbOtherSetting.IsChecked)
|
{
|
otherSetting.Visibility = Visibility.Visible;
|
centrifugalOtherSetting.Visibility = Visibility.Collapsed;
|
}
|
}
|
rbOtherSetting.IsEnabled = true;
|
if (labware.labware_type_id == EnumManagement.GetEnumValue(ConsumableTypeEnum.Plate).ToString()) // 孔板
|
{
|
gridBaseSetting.Children.Clear();
|
plateSetting = new PlateSetting(selectLabware);
|
plateSetting.consumableManagement = this;
|
gridBaseSetting.Children.Add(plateSetting);
|
}
|
else if (labware.labware_type_id == EnumManagement.GetEnumValue(ConsumableTypeEnum.Tips).ToString()) // 吸头
|
{
|
gridBaseSetting.Children.Clear();
|
tipsSetting = new TipsSetting(selectLabware);
|
gridBaseSetting.Children.Add(tipsSetting);
|
rbOtherSetting.IsEnabled = false;
|
}
|
else if (labware.labware_type_id == EnumManagement.GetEnumValue(ConsumableTypeEnum.Through).ToString()) // 试剂槽
|
{
|
gridBaseSetting.Children.Clear();
|
throughSetting = new ThroughSetting(selectLabware);
|
gridBaseSetting.Children.Add(throughSetting);
|
}
|
else if (labware.labware_type_id == EnumManagement.GetEnumValue(ConsumableTypeEnum.CircularDish).ToString()) //圆形皿
|
{
|
gridBaseSetting.Children.Clear();
|
circularDishSetting = new CircularDishSetting(selectLabware);
|
gridBaseSetting.Children.Add(circularDishSetting);
|
}
|
else if (labware.labware_type_id == EnumManagement.GetEnumValue(ConsumableTypeEnum.TipsBox).ToString()) // 吸头盒
|
{
|
gridBaseSetting.Children.Clear();
|
tipBoxSetting = new TipBoxSetting(selectLabware);
|
gridBaseSetting.Children.Add(tipBoxSetting);
|
}
|
else if (labware.labware_type_id == EnumManagement.GetEnumValue(ConsumableTypeEnum.Lid).ToString()) // 盖子
|
{
|
gridBaseSetting.Children.Clear();
|
lidSetting = new LidSetting(selectLabware);
|
lidSetting.consumableManagement = this;
|
gridBaseSetting.Children.Add(lidSetting);
|
}
|
else if (labware.labware_type_id == EnumManagement.GetEnumValue(ConsumableTypeEnum.Rounddishlid).ToString()) // 圆形皿盖子
|
{
|
gridBaseSetting.Children.Clear();
|
lidSetting = new LidSetting(selectLabware);
|
gridBaseSetting.Children.Add(lidSetting);
|
}
|
else if(labware.labware_type_id == EnumManagement.GetEnumValue(ConsumableTypeEnum.Tube).ToString()) //管架
|
{
|
gridBaseSetting.Children.Clear();
|
plateSetting = new PlateSetting(selectLabware);
|
plateSetting.consumableManagement = this;
|
gridBaseSetting.Children.Add(plateSetting);
|
}
|
else if(labware.labware_type_id == EnumManagement.GetEnumValue(ConsumableTypeEnum.Shelf).ToString()) //板位
|
{
|
gridBaseSetting.Children.Clear();
|
latticeSetting = new LatticeSetting(selectLabware);
|
latticeSetting.consumableManagement = this;
|
gridBaseSetting.Children.Add(latticeSetting);
|
}
|
else if (labware.labware_type_id == EnumManagement.GetEnumValue(ConsumableTypeEnum.Centrifugal).ToString()) //离心管
|
{
|
gridBaseSetting.Children.Clear();
|
centrifugalSetting = new CentrifugalSetting(selectLabware);
|
centrifugalSetting.consumableManagement = this;
|
gridBaseSetting.Children.Add(centrifugalSetting);
|
}
|
else if (labware.labware_type_id == EnumManagement.GetEnumValue(ConsumableTypeEnum.Electrophoto).ToString()) //电泳槽
|
{
|
gridBaseSetting.Children.Clear();
|
latticeSetting = new LatticeSetting(selectLabware);
|
latticeSetting.consumableManagement = this;
|
gridBaseSetting.Children.Add(latticeSetting);
|
}
|
|
rbBaseSetting.IsChecked = true;
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
public void AddNewLabware(Labware l)
|
{
|
Labware labware = new Labware();
|
labware.labware_id = Guid.NewGuid().ToString();
|
labware.labware_name = l.labware_name;
|
labware.labware_type_id = l.labware_type_id;
|
labware.labware_type = l.labware_type;
|
labware.is_default_type = 0;
|
labware.labware_color_top = l.labware_color_top;
|
labware.labware_color_line = l.labware_color_line;
|
|
int ret = LabwareDB.AddLabwareIntodb(labware);
|
|
Hashtable hashtable = logAduitHelper.AddObj(labware);
|
string operateContent = string.Empty;
|
foreach (DictionaryEntry d in hashtable)
|
{
|
operateContent += d.Key.ToString() + ":" + d.Value.ToString() + "\r\n";
|
}
|
|
if (ret > 0)
|
{
|
labwareList.Add(labware);
|
PlsSetProperty plsSetProperty = new PlsSetProperty($"耗材:{labware.labware_name} 添加成功", false);
|
plsSetProperty.closeEvent += PlsSetProperty_closeEvent;
|
Window wnd = Application.Current.MainWindow;
|
Grid parent = Utilities.FindVisualChild<Grid>(wnd);
|
parent.Children.Add(plsSetProperty);
|
OperateAuditLogDB.AddOperateAuditLogIntodb(operateAuditLogBll.GenerateOperateAuditLog("添加",operateContent, Shared.User.username,"耗材管理","","","耗材[id:"+labware.labware_id+"]","成功"));
|
}
|
else
|
{
|
PlsSetProperty plsSetProperty = new PlsSetProperty($"耗材:{labware.labware_name} 添加失败", false);
|
plsSetProperty.closeEvent += PlsSetProperty_closeEvent;
|
Window wnd = Application.Current.MainWindow;
|
Grid parent = Utilities.FindVisualChild<Grid>(wnd);
|
parent.Children.Add(plsSetProperty);
|
OperateAuditLogDB.AddOperateAuditLogIntodb(operateAuditLogBll.GenerateOperateAuditLog("添加", operateContent, Shared.User.username,"耗材管理","", "", "耗材[id:" + labware.labware_id + "]", "失败"));
|
}
|
cbLabwareType_SelectionChanged(null, null);//更新
|
lvConsumable.SelectedItem = labware;
|
}
|
|
private void cbLabwareType_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (cbLabwareType.SelectedIndex < 0)
|
return;
|
|
lvConsumable.ItemsSource = null;
|
if (cbLabwareType.SelectedValue.ToString() == "-1")
|
lvConsumable.ItemsSource = labwareList;
|
else
|
{
|
List<Labware> list = labwareList.Where(s => s.labware_type_id == cbLabwareType.SelectedValue.ToString()).ToList();
|
lvConsumable.ItemsSource = list;
|
}
|
}
|
|
#region 保存耗材(添加或修改进入数据库)
|
public void SaveConsumable()
|
{
|
if (lvConsumable.SelectedIndex < 0)
|
return;
|
if (baseInfo.CheckData())
|
{
|
Labware labware = lvConsumable.SelectedItem as Labware;
|
//if(labware.labware_type_id.Equals("4"))
|
//{
|
// if (selectLabware.labwareWellInfoList != null)
|
// {
|
// foreach (LabwareWellInfo labwareWellInfo in selectLabware.labwareWellInfoList)
|
// {
|
// if (labwareWellInfo.labware_well_shape.Equals(0))
|
// {
|
// labwareWellInfo.labware_well_shape = 1;
|
// }
|
// else if (labwareWellInfo.labware_well_shape.Equals(1))
|
// {
|
// labwareWellInfo.labware_well_shape = 2;
|
// }
|
// }
|
// }
|
//}
|
labware.Copy(selectLabware);
|
//查找到显示控件
|
List<TextBlock> list = ViewCom.GetChildObjects<TextBlock>((DependencyObject)lvConsumable, typeof(TextBlock));
|
for (int i = 0; i < list.Count; i++)
|
{
|
if (list.Count > 0)
|
{
|
if (list[i].Name == "idText" && list[i].Tag.ToString() == labware.labware_id.ToString())
|
{
|
list[i].Text = labware.labware_name;
|
}
|
}
|
}
|
int flag = LabwareDB.UpdateLabwareIntodb(labware);
|
|
if (labware.labware_type_id == "4")
|
{
|
if (labware.labwareWellInfoList != null&&labware.labwareWellInfoList.Count>0)
|
{
|
int sum = 0;
|
|
LabwareDB.DeleteLabwareWellInfoByLabwareIddb(labware.labwareWellInfoList[0].labware_id);
|
|
foreach (LabwareWellInfo labwareWell in labware.labwareWellInfoList)
|
{
|
//if (LabwareDB.GetSpecialLabwareWellInfoExistById(labwareWell.well_id))
|
//{
|
// int ret = LabwareDB.UpdateLabwareWellInfoIntodb(labwareWell);
|
// if (ret > 0)
|
// {
|
// sum++;
|
// }
|
//}
|
//else
|
//{
|
int ret = LabwareDB.AddLabwareWellInfoIntodb(labwareWell);
|
if (ret > 0)
|
{
|
sum++;
|
}
|
//}
|
}
|
|
if (sum == labware.labwareWellInfoList.Count)
|
{
|
//成功
|
}
|
}
|
}
|
|
LabwareMemento oldLabwares = new LabwareMemento(null);
|
string maxKey = "";
|
oldLabwares = GetMaxKeyLabwareMemento(out maxKey);
|
string operateContent = string.Empty;
|
if (oldLabwares!=null)
|
{
|
Labware oldLabware = oldLabwares.LabwareBack.SingleOrDefault(x => x.labware_id.Equals(labware.labware_id));
|
if (oldLabware != null)
|
{
|
Hashtable hashtable = logAduitHelper.diffObj(oldLabware, labware);
|
foreach (DictionaryEntry d in hashtable)
|
{
|
operateContent += d.Key.ToString() + ":" + d.Value.ToString() + "\r\n";
|
}
|
if (flag > 0)
|
{
|
oldLabwares.LabwareBack.Remove(oldLabware);
|
Labware newlabware = new Labware();
|
newlabware.Copy(labware);
|
oldLabwares.LabwareBack.Add(newlabware);
|
}
|
}
|
}
|
|
if (flag > 0)
|
{
|
PlsSetProperty plsSetProperty = new PlsSetProperty($"耗材:{labware.labware_name} 保存成功", false);
|
plsSetProperty.closeEvent += PlsSetProperty_closeEvent;
|
System.Windows.Window wnd = Application.Current.MainWindow;
|
Grid parent = Utilities.FindVisualChild<Grid>(wnd);
|
parent.Children.Add(plsSetProperty);
|
OperateAuditLogDB.AddOperateAuditLogIntodb(operateAuditLogBll.GenerateOperateAuditLog("修改", operateContent, Shared.User.username, "耗材管理", "", "", "耗材[id:" + labware.labware_id + "]", "成功"));
|
}
|
else
|
{
|
PlsSetProperty plsSetProperty = new PlsSetProperty($"耗材:{labware.labware_name} 保存失败", false);
|
plsSetProperty.closeEvent += PlsSetProperty_closeEvent;
|
System.Windows.Window wnd = Application.Current.MainWindow;
|
Grid parent = Utilities.FindVisualChild<Grid>(wnd);
|
parent.Children.Add(plsSetProperty);
|
OperateAuditLogDB.AddOperateAuditLogIntodb(operateAuditLogBll.GenerateOperateAuditLog("修改", operateContent, Shared.User.username, "耗材管理", "", "", "耗材[id:" + labware.labware_id + "]", "失败"));
|
}
|
lvConsumable.SelectedValue = labware;
|
}
|
}
|
#endregion
|
|
#region 获取最新的一条耗材集备份
|
/// <summary>
|
/// 获取最新的一条耗材集备份
|
/// </summary>
|
/// <returns></returns>
|
public LabwareMemento GetMaxKeyLabwareMemento(out string maxKey)
|
{
|
LabwareMemento oldLabwares = new LabwareMemento(null);
|
List<DateTime> dateKeys = new List<DateTime>();
|
foreach (KeyValuePair<string, LabwareMemento> d in labwareCaretaker.LabwareMementoDic)
|
{
|
dateKeys.Add(Convert.ToDateTime(d.Key.ToString()));
|
}
|
maxKey = dateKeys.Max().ToString("yyyy-MM-dd HH:mm:ss");
|
|
if (labwareCaretaker.LabwareMementoDic.TryGetValue(maxKey, out oldLabwares))
|
{
|
return oldLabwares;
|
}
|
return null;
|
}
|
#endregion
|
|
#region 另存为耗材(导出为文件)
|
public void SaveAsConsumable()
|
{
|
if (lvConsumable.SelectedIndex < 0)
|
return;
|
|
Labware labware = lvConsumable.SelectedItem as Labware;
|
labware.Copy(selectLabware);
|
LabwareDB.UpdateLabwareIntodb(labware);
|
if (labware.labware_type_id == "4")
|
{
|
if(labware.labwareWellInfoList!=null)
|
{
|
int sum = 0;
|
foreach(LabwareWellInfo labwareWell in labware.labwareWellInfoList)
|
{
|
if(LabwareDB.GetSpecialLabwareWellInfoExistById(labwareWell.well_id))
|
{
|
int ret=LabwareDB.AddLabwareWellInfoIntodb(labwareWell);
|
if(ret>0)
|
{
|
sum++;
|
}
|
}
|
else
|
{
|
int ret=LabwareDB.AddLabwareWellInfoIntodb(labwareWell);
|
if (ret > 0)
|
{
|
sum++;
|
}
|
}
|
}
|
|
if(sum==labware.labwareWellInfoList.Count)
|
{
|
//成功
|
}
|
}
|
}
|
}
|
#endregion
|
|
private void searchLabware_PreviewKeyDown(object sender, KeyEventArgs e)
|
{
|
if (e.Key == Key.Enter)
|
{
|
string search = searchLabware.Text.Trim();
|
if (string.IsNullOrEmpty(search))
|
return;
|
lvConsumable.ItemsSource = null;
|
|
List<Labware> list = labwareList.Where(s => (s.labware_name.Contains(search) || s.brand.Contains(search))).ToList();
|
lvConsumable.ItemsSource = list;
|
}
|
}
|
|
private void searchLabware_clearEvent(object sender, EventArgs e)
|
{
|
lvConsumable.ItemsSource = null;
|
//lvConsumable.ItemsSource = labwareList;
|
|
if (cbLabwareType.SelectedIndex < 0)
|
return;
|
|
lvConsumable.ItemsSource = null;
|
if (cbLabwareType.SelectedIndex == 0)
|
lvConsumable.ItemsSource = labwareList;
|
else
|
{
|
List<Labware> list = labwareList.Where(s => s.labware_type_id == cbLabwareType.SelectedValue.ToString()).ToList();
|
lvConsumable.ItemsSource = list;
|
}
|
}
|
|
private void menuCopy_Click(object sender, RoutedEventArgs e)
|
{
|
if (lvConsumable.SelectedItem == null)
|
return;
|
|
copyLabware = lvConsumable.SelectedItem as Labware;
|
|
ContextMenu menu = FindResource("consumableMenu") as ContextMenu;
|
MenuItem mi = menu.Items[1] as MenuItem;
|
mi.IsEnabled = true;
|
}
|
|
private void menuPaste_Click(object sender, RoutedEventArgs e)
|
{
|
if (copyLabware == null)
|
return;
|
|
Labware newLabware = copyLabware.Clone() as Labware;
|
newLabware.labware_name = copyLabware.labware_name + " " + Properties.Resources.strCopy;
|
newLabware.is_default_type = 0;
|
newLabware.labware_id = Guid.NewGuid().ToString();
|
labwareList.Add(newLabware);
|
LabwareDB.AddLabwareIntodb(newLabware);
|
cbLabwareType_SelectionChanged(null, null);
|
}
|
|
private void menuEdit_Click(object sender, RoutedEventArgs e)
|
{
|
|
}
|
|
private void menuDelete_Click(object sender, RoutedEventArgs e)
|
{
|
if (lvConsumable.SelectedItem == null)
|
return;
|
PlsToolTipWin plsToolTipWin = new PlsToolTipWin("Do you want to delete this labware? ");
|
plsToolTipWin.Height = ActualHeight;
|
plsToolTipWin.Width = ActualWidth;
|
plsToolTipWin.btnClearData.Visibility = Visibility.Hidden;
|
plsToolTipWin.lauchView = null;
|
|
SolidColorBrush mybtn1_Brush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(0, 0, 0, 0));
|
plsToolTipWin.Background = (System.Windows.Media.Brush)mybtn1_Brush;
|
plsToolTipWin.ShowDialog();
|
if (plsToolTipWin.DialogResult == true)
|
{
|
Labware lab = lvConsumable.SelectedItem as Labware;
|
labwareList.Remove(lab);
|
lab.labware_status = 0;
|
int flag = LabwareDB.DeleteLabwareIntodb(lab);
|
|
LabwareMemento oldLabwares = new LabwareMemento(null);
|
string maxKey = "";
|
oldLabwares = GetMaxKeyLabwareMemento(out maxKey);
|
string operateContent = string.Empty;
|
if (oldLabwares != null)
|
{
|
Labware oldLabware = oldLabwares.LabwareBack.SingleOrDefault(x => x.labware_id.Equals(lab.labware_id));
|
Hashtable hashtable = logAduitHelper.LabwareDelObj(lab);
|
foreach (DictionaryEntry d in hashtable)
|
{
|
operateContent += d.Key.ToString() + ":" + d.Value.ToString() + "\r\n";
|
}
|
if (flag > 0)
|
{
|
oldLabwares.LabwareBack.Remove(oldLabware);
|
}
|
}
|
|
if (flag > 0)
|
{
|
PlsSetProperty plsSetProperty = new PlsSetProperty($"耗材:{lab.labware_name} 删除成功", false);
|
plsSetProperty.closeEvent += PlsSetProperty_closeEvent;
|
Window wnd = Application.Current.MainWindow;
|
Grid parent = Utilities.FindVisualChild<Grid>(wnd);
|
parent.Children.Add(plsSetProperty);
|
OperateAuditLogDB.AddOperateAuditLogIntodb(operateAuditLogBll.GenerateOperateAuditLog("删除", operateContent, Shared.User.username, "耗材管理", "", "", "耗材[id:" + lab.labware_id + "]", "成功"));
|
}
|
else
|
{
|
PlsSetProperty plsSetProperty = new PlsSetProperty($"耗材:{lab.labware_name} 删除失败", false);
|
plsSetProperty.closeEvent += PlsSetProperty_closeEvent;
|
Window wnd = Application.Current.MainWindow;
|
Grid parent = Utilities.FindVisualChild<Grid>(wnd);
|
parent.Children.Add(plsSetProperty);
|
OperateAuditLogDB.AddOperateAuditLogIntodb(operateAuditLogBll.GenerateOperateAuditLog("删除", operateContent, Shared.User.username, "耗材管理", "", "", "耗材[id:" + lab.labware_id + "]", "失败"));
|
}
|
|
if (cbLabwareType.SelectedIndex == 0)
|
{
|
string search = searchLabware.Text.Trim();
|
List<Labware> list = labwareList.Where(s => (s.labware_name.Contains(search) || s.brand.Contains(search))).ToList();
|
lvConsumable.ItemsSource = list;
|
}
|
else
|
{
|
string search = searchLabware.Text.Trim();
|
List<Labware> list = labwareList.Where(s => (s.labware_name.Contains(search) || s.brand.Contains(search))).ToList();
|
list = list.Where(s => s.labware_type_id == cbLabwareType.SelectedValue.ToString()).ToList();
|
lvConsumable.ItemsSource = list;
|
}
|
}
|
else
|
{
|
|
}
|
}
|
|
private void lvConsumable_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
|
{
|
ListViewItem listViewItem = Utilities.FindVisualParent<ListViewItem>(e.OriginalSource as DependencyObject) as ListViewItem;
|
if (listViewItem != null)
|
{
|
listViewItem.Focus();
|
|
string userid = UserDB.GetUserInfByUserName(Shared.User.username).id;
|
//所有菜单
|
List<RoleMenu> roleMenuAllList = UserDB.GetWholeRoleMenuByUserId(userid);
|
var MenuLabwareManage = roleMenuAllList.FirstOrDefault(x => x.rolemenuname.Equals(MenuName.MenuLabwareManage));
|
|
Labware labware = listViewItem.DataContext as Labware;
|
lvConsumable.SelectedItem = labware;
|
|
ContextMenu menu = FindResource("consumableMenu") as ContextMenu;
|
MenuItem mi = menu.Items[2] as MenuItem;
|
if (labware.is_default_type == 1)
|
{
|
mi.IsEnabled = false;
|
}
|
else
|
{
|
//权限控制
|
if (MenuLabwareManage != null)
|
{
|
var MenuLabwareDelete = MenuLabwareManage.rolemenuchildren.FirstOrDefault(x => x.rolemenuname.Equals(MenuName.SubMenuDelete));
|
if (MenuLabwareDelete != null)
|
{
|
mi.IsEnabled = true;
|
}
|
else
|
{
|
mi.IsEnabled = false;
|
}
|
}
|
}
|
mi = menu.Items[0] as MenuItem;
|
//权限控制
|
if (MenuLabwareManage != null)
|
{
|
var MenuLabwareCopy = MenuLabwareManage.rolemenuchildren.FirstOrDefault(x => x.rolemenuname.Equals(MenuName.SubMenuCopy));
|
if (MenuLabwareCopy != null)
|
{
|
mi.IsEnabled = true;
|
}
|
else
|
{
|
mi.IsEnabled = false;
|
}
|
}
|
|
e.Handled = true;
|
}
|
}
|
|
private void PlsSetProperty_closeEvent(object sender, EventArgs e)
|
{
|
Window wnd = Application.Current.MainWindow;
|
Grid grid = Utilities.FindVisualChild<Grid>(wnd);
|
|
UIElement element = sender as UIElement;
|
grid.Children.Remove(element);
|
}
|
|
}
|
}
|