55 lines
1.9 KiB
C#
55 lines
1.9 KiB
C#
using EntityFrameworkCore.Triggered;
|
|
using IRaCIS.Core.Domain.Share;
|
|
|
|
namespace IRaCIS.Core.Application.Triggers
|
|
{
|
|
//病灶编号维护
|
|
public class TableQuestionRowTrigger : IBeforeSaveTrigger<ReadingTableAnswerRowInfo>
|
|
{
|
|
|
|
|
|
public Task BeforeSave(ITriggerContext<ReadingTableAnswerRowInfo> context, CancellationToken cancellationToken)
|
|
{
|
|
Dictionary<int, string> splitLesionDic = new Dictionary<int, string>()
|
|
{
|
|
{1, "a" },
|
|
{2, "b" },
|
|
{3, "c" },
|
|
{4, "d" },
|
|
{5, "e" },
|
|
{6, "f" },
|
|
{7, "g" },
|
|
{8, "h" },
|
|
{9, "i" },
|
|
{10, "j" },
|
|
{11, "k" },
|
|
{12, "l" },
|
|
{13, "m" },
|
|
{14, "n" },
|
|
{15, "o" },
|
|
{16, "p" },
|
|
{17, "q" },
|
|
{18, "r" },
|
|
{19, "s" },
|
|
{20, "t" },
|
|
{21, "u" },
|
|
{22, "v" },
|
|
{23, "w" },
|
|
{24, "x" },
|
|
{25, "y" },
|
|
{26, "z" },
|
|
|
|
};
|
|
if (context.Entity.RowIndex % 1 == 0)
|
|
{
|
|
context.Entity.RowMark = context.Entity.OrderMark + decimal.ToInt32(context.Entity.RowIndex).ToString().PadLeft(2, '0');
|
|
}
|
|
else
|
|
{
|
|
context.Entity.RowMark = context.Entity.OrderMark + Math.Floor(context.Entity.RowIndex).ToString().PadLeft(2, '0') + splitLesionDic[decimal.ToInt32((context.Entity.RowIndex % 1) * 100)];
|
|
}
|
|
|
|
return Task.CompletedTask;
|
|
}
|
|
}
|
|
} |