コード例 #1
0
ファイル: PageBase.cs プロジェクト: yhhno/Membership
 private List<SDK.Operation> CalculateSDKOperationList(List<SDK.Operation> srcList)
 {
     List<SDK.Operation> dstList = new List<SDK.Operation>();
     ControlPanelManifest manifest = new ControlPanelManifest();
     var manifestOperationList = manifest.GetOperationList();
     foreach (SDK.Operation operation in srcList)
     {
         operation.TargetCode = operation.TargetCode ?? "*";
         operation.Code = operation.Code ?? "*";
         var bufferList = new List<SDK.Operation>();
         if (operation.TargetCode == "*" && operation.Code == "*")
         {
             bufferList.AddRange(manifestOperationList);
         }
         else if (operation.TargetCode == "*" && operation.Code != "*")
         {
             bufferList.AddRange(manifestOperationList
                 .Where(op => op.Code == operation.Code)
                 .ToList());
         }
         else if (operation.TargetCode != "*" && operation.Code == "*")
         {
             bufferList.AddRange(manifestOperationList
                .Where(op => op.TargetCode == operation.TargetCode)
                .ToList());
         }
         else
         {
             bufferList.Add(manifestOperationList
                 .FirstOrDefault(op => op.TargetCode == operation.TargetCode
                     && op.Code == operation.Code));
         }
         //如果计算结果不存在就把,原 “操作” 放入 buffer
         if (bufferList.Count < 1)
         {
             bufferList.Add(operation);
         }
         dstList.AddRange(bufferList);
     }
     return dstList;
 }