using DBHelper;
using System;
using WCS.Entity;
using WCS.Entity.Protocol;
using TaskStatus = WCS.Entity.TaskStatus;
namespace WCS.Service.Extensions
{
public static class WCS_TaskExtensions
{
///
/// 任务发生状态变更时,为任务新增状态变更记录
///
/// 对应任务
/// db链接, 没有从新构造一个db的原因是为了保证状态记录的增加与任务状态的变更是同步的
public static void CreateStatusLog(this WCS_TASK task, DB db)
{
try
{
System.Reflection.MethodBase mb = new System.Diagnostics.StackTrace(true).GetFrame(1).GetMethod();
var node = $"{mb.DeclaringType.FullName}.{mb.Name}";
var oldStatus = task.STATUS;
if (task.STATUS > TaskStatus.新建) oldStatus = db.Default.Entry(task).OriginalValues.GetValue("STATUS");
WCS_StatusLog statusLog = new WCS_StatusLog()
{
WCS_TASKID = task.ID,
OldStatus = oldStatus,
NewStatus = task.STATUS,
UPDATETIME = task.UPDATETIME,
upStatus = task.UPLOADED,
Node = node,
UPDATEUSER = "WCS"
};
db.Default.Add(statusLog);
db.Default.SaveChanges();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
public static void CreateStatusLog(this WCS_TASK task, DB db,string msg)
{
try
{
System.Reflection.MethodBase mb = new System.Diagnostics.StackTrace(true).GetFrame(1).GetMethod();
var node = $"{mb.DeclaringType.FullName}.{mb.Name}";
var oldStatus = task.STATUS;
if (task.STATUS > TaskStatus.新建) oldStatus = db.Default.Entry(task).OriginalValues.GetValue("STATUS");
WCS_StatusLog statusLog = new WCS_StatusLog()
{
WCS_TASKID = task.ID,
OldStatus = oldStatus,
NewStatus = task.STATUS,
UPDATETIME = DateTime.Now,
upStatus = task.UPLOADED,
Node = node,
UPDATEUSER = msg
};
db.Default.Add(statusLog);
db.Default.SaveChanges();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}