using DataEntity.Share;
using DataRWDAL.Device;
using HxEnum;
using MySql.Data.MySqlClient;
using System;
using System.Collections.ObjectModel;
using System.Data;
using XCommon.Log;
using XCommon.MySql;
using DataRWDAL.Base;
using SqlSugar;
using System.Dynamic;
using DataRWDAL;
namespace XImagingXhandler.XDAL
{
///
/// 菜单库表操作类
///
public class MethodDB : BaseDB
{
#region 从数据库获取工作站已实现的方法信息数据
///
/// 从数据库获取工作站已实现的方法信息数据
///
/// 实现的方法信息数据实体集合
public static ObservableCollection GetMethodFromdb()
{
using (var db = GetInstance())
{
return new ObservableCollection(db.Queryable().Where(it => it.method_status.Equals(1)).OrderBy(it => it.method_id, SqlSugar.OrderByType.Asc).ToList());
}
}
#endregion
#region 从数据库获取工作站已实现的方法信息数据---根据当前使用的设备
///
/// 从数据库获取工作站已实现的方法信息数据---根据当前使用的设备
///
/// 符合条件实现的方法信息数据实体集合
public static ObservableCollection GetMethodFromdb(string deviceName, bool isAddDevice = true)
{
ObservableCollection methods = new ObservableCollection();
string sqlstr = "";
try
{
using (var db = GetInstance())
{
var query = db.Queryable("softwarersmethod", "t").AddJoinInfo("method", "l", "t.method_id=l.method_id and l.method_status=1", JoinType.Inner)
.AddJoinInfo("softwareinformation", "lt", "lt.software_information_id=t.software_information_id and lt.software_device_number='" + deviceName + "'", JoinType.Inner)
.Select("l.*");
var a = query.ToList();
foreach (ExpandoObject epo in a)
{
Method lq = epo.ToEntity();
methods.Add(lq);
}
if (isAddDevice)
{
// 根据项目ID,获取设备列表
var lstDevice = DeviceConfigDB.GetDeviceConfigListByProjectId(Shared.SoftwareInformation.software_information_id);
foreach (var deviceItem in lstDevice)
{
Method m = new Method();
m.method_id = deviceItem.Id == null ? "0": deviceItem.Id;
m.method_name = deviceItem.Name;
m.method_status = EnumManagement.GetEnumValue(MethodStatusEnum.Valid); // 有效
m.method_content = deviceItem.Name;
m.method_Tipcontent = string.Empty;
m.method_ico = deviceItem.EquipmentImg; // 设备图片
m.method_group_id = EnumManagement.GetEnumValue(MethodGroupEnum.ThirdPart); // 第三方设备
m.method_support = EnumManagement.GetEnumValue(MethodSupportEnum.Support); // 支持
m.method_type = EnumManagement.GetEnumValue(MethodTypeEnum.SingleStep); // 单指令
//MethodEx mEx = new MethodEx(m);
//mEx.device = deviceItem;
methods.Add(m);
}
}
}
}
catch (MySqlException me)
{
LoggerHelper.ErrorLog("执行:" + sqlstr, me);
}
return methods;
}
#endregion
#region 更新method
public static int UpdateMethodIntodb(Method method)
{
int iResult = 0;
string sqlstr = "";
MySqlConnection mysqlcon = MySqlUtity.GetConnection();
// add
MySqlCommand sqlcom = new MySqlCommand();
sqlstr = sqlcom.CommandText = @"
update method SET " +
"method_status=" + method.method_status + " where method_id='" + method.method_id + "'";
MySqlParameter[] commandParameters = new MySqlParameter[]{
};
try
{
iResult = MySqlUtity.ExecuteNonQuery(mysqlcon.ConnectionString, CommandType.Text, sqlcom.CommandText, commandParameters);
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("执行:" + sqlstr, ex);
}
return iResult;
}
#endregion
}
}