using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Extensometer.Data;
using Extensometer.Model;
using Extensometer.Model.ResultModel;
namespace Extensometer.BLL
{
public class ObjDataOperationClass
{
private static ObjDataOperationClass ObjDataOperation = new ObjDataOperationClass();
private ObjDataOperationClass()
{ }
public static ObjDataOperationClass GetObjDataOperationClass()
{
return ObjDataOperation;
}
private string ObjDbPath = string.Empty;
///
/// 创建
///
///
public void CreatObjDbFile(string DbPath)
{
using (var Db = new ObjectDBTable(DbPath))
{
ObjDbPath = DbPath;
}
}
///
/// 加载
///
///
public void LoadObjDbFile(string DbPath)
{
ObjDbPath = DbPath;
LoadDll();
}
public void LoadDll()
{
Thread thread = new Thread(()=> {
using (var Db = new ObjectDBTable(ObjDbPath))
{
}
});
thread.Start();
}
///
/// 全查询
///
public List CheckObjDb()
{
List result = new List();
using (var Db = new ObjectDBTable(ObjDbPath))
{
result = Db.ObjectDatas.OrderBy(e => e.GaugeLeng).ToList();
}
return result;
}
///
/// 添加一条数据
///
///
///
public ResultModel InsertObjDb(ObjectData objectData)
{
ResultModel result = new ResultModel();
using (var Db = new ObjectDBTable(ObjDbPath))
{
if(Db.Insert(objectData)>0)
{
result.ErrCode = ErrCodeList.Success;
result.ErrMessage = "添加成功";
}
}
return result;
}
///
/// List转成Exl表格
///
///
///
///
//public ResultModel DataExport(List list,string FilePath)
//{
// ResultModel resultModel = new ResultModel();
// if (list.Count > 0)
// {
// object misValue = Missing.Value;
// Application xlApp = new Application();
// Workbook xlWorkBook = xlApp.Workbooks.Add(misValue);
// Worksheet xlWorkSheet = (Worksheet)xlWorkBook.Worksheets.get_Item(1);
// PropertyInfo[] props = GetPropertyInfoArray();
// for (int i = 0; i < props.Length; i++)
// {
// xlWorkSheet.Cells[1, i + 1] = props[i].Name; //write the column name
// }
// for (int i = 0; i < list.Count; i++)
// {
// xlWorkSheet.Cells[i + 2, 1] = list[i].GaugeLeng.ToString();
// xlWorkSheet.Cells[i + 2, 2] = list[i].Time.ToString();
// xlWorkSheet.Cells[i + 2, 3] = list[i].Point1x.ToString();
// xlWorkSheet.Cells[i + 2, 4] = list[i].Point1y.ToString();
// xlWorkSheet.Cells[i + 2, 5] = list[i].Point2x.ToString();
// xlWorkSheet.Cells[i + 2, 6] = list[i].Point2y.ToString();
// xlWorkSheet.Cells[i + 2, 7] = list[i].StrainValue.ToString();
// xlWorkSheet.Cells[i + 2, 8] = list[i].Distance.ToString();
// xlWorkSheet.Cells[i + 2, 9] = list[i].Displacement.ToString();
// xlWorkSheet.Cells[i + 2, 10] = list[i].ForceValue.ToString();
// }
// try
// {
// xlWorkBook.SaveAs(FilePath, XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
// xlWorkBook.Close(true, misValue, misValue);
// xlApp.Quit();
// }
// catch
// { }
// }
// return resultModel;
//}
///
/// 查询数据库路径是否为空
///
///
public ResultModel CheckDataPathIsEmpty()
{
ResultModel resultModel = new ResultModel();
try
{
if(string.IsNullOrEmpty(ObjDbPath))
{
resultModel.ErrCode = ErrCodeList.PathEmpty;
resultModel.ErrMessage = "数据路径为空";
}
else
{
resultModel.ErrCode = ErrCodeList.Success;
resultModel.ErrMessage = "";
}
}
catch
{
resultModel.ErrCode = ErrCodeList.OtherErr;
resultModel.ErrMessage = "未知错误";
}
return resultModel;
}
///
/// 反射获取类型的所有属性
///
///
private PropertyInfo[] GetPropertyInfoArray()
{
PropertyInfo[] props = null;
try
{
Type type = typeof(ObjectData);
object obj = Activator.CreateInstance(type);
props = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
}
catch
{ }
return props;
}
}
}