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;
 | |
|         }
 | |
|     }
 | |
| } |