Advertisement
lilos404

Untitled

Apr 30th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.82 KB | None | 0 0
  1.  private static void thresholdValidation(int column_number)
  2.         {
  3.             var cells = MPD_Page.Columns[column_number].ExistingCells.ToArray();
  4.             string indice = "";
  5.             string[] thresholdValues = new string[cells.Length];
  6.             var TC = INTERVAL_Page.Columns[9].ExistingCells.ToArray();
  7.             var TC1 = INTERVAL_Page.Columns[11].ExistingCells.ToArray();
  8.             var TC2 = INTERVAL_Page.Columns[12].ExistingCells.ToArray();
  9.             var CHK = CHECK_Page.Columns[1].ExistingCells.ToArray();
  10.  
  11.             string[] trackingCodeValues = new string[TC.Length-1];
  12.             string[] checkValues = new string[CHK.Length - 1];
  13.             int[] minValues = new int[TC.Length - 1];
  14.             int[] maxValues = new int[TC.Length - 1];
  15.  
  16.             for (int i = 0; i < TC.Length-1; i++)
  17.             {
  18.                 trackingCodeValues[i] = TC[i+1].Value.ToString();
  19.                 minValues[i] = Int32.Parse(TC1[i + 1].Value.ToString());
  20.                 maxValues[i] = Int32.Parse(TC2[i + 1].Value.ToString());
  21.             }
  22.  
  23.             for (int i = 0; i < CHK.Length - 1; i++)
  24.             {
  25.                 checkValues[i] = CHK[i + 1].Value.ToString();
  26.            
  27.             }
  28.  
  29.             for (int i = 0; i < cells.Length; i++)
  30.             {
  31.                 thresholdValues[i] = cells[i].Value.ToString();
  32.             }
  33.  
  34.  
  35.             for (int i = 1; i < thresholdValues.Length; i++)
  36.             {
  37.  
  38.                 indice = "K" + (i + 1).ToString();
  39.  
  40.                 string[] text ;
  41.                 if (thresholdValues[i] != "")
  42.                 {
  43.                     // MPD_Page.Cells[indice].FillColor = Color.Red;
  44.                     text  = thresholdValues[i].Split(new string[] { "OR" }, StringSplitOptions.None);
  45.                     switch (text.Length)
  46.                     {
  47.                         case 1:
  48.                             if (!testInterval(text[0],-1)) {
  49.                                 MPD_Page.Cells[indice].FillColor = Color.Red;
  50.                             }
  51.                               break;
  52.                         case 2:
  53.                             if (!testInterval(text[0], 0) || !testInterval(text[1], 2))
  54.                             {
  55.                                 MPD_Page.Cells[indice].FillColor = Color.Red;
  56.                             }
  57.                             break;
  58.  
  59.                         default:
  60.                             if (!testInterval(text[0], 0))
  61.                             {
  62.                                 MPD_Page.Cells[indice].FillColor = Color.Red;
  63.                             }
  64.                             for (int j = 1; j < text.Length-1; j++)
  65.                             {
  66.                                 if (!testInterval(text[j], 1))
  67.                                 {
  68.                                     MPD_Page.Cells[indice].FillColor = Color.Red;
  69.                                 }
  70.                             }
  71.                             if (!testInterval(text[text.Length-1], 2))
  72.                             {
  73.                                 MPD_Page.Cells[indice].FillColor = Color.Red;
  74.                             }
  75.                             break;
  76.                     }
  77.  
  78.          bool testInterval(string v1, int v2)
  79.         {
  80.                         string value;
  81.  
  82.                         if (v2 == -1)
  83.                         {  
  84.                             if (v1.IndexOf('\n')>=0)
  85.                             {
  86.                                 return false;
  87.                             } else
  88.                             {
  89.                                 value = v1;
  90.                              
  91.                             }
  92.                         }
  93.                         else if (v2 == 0)
  94.                         {
  95.                             if (v1[v1.Length - 1] != '\n')
  96.                             {
  97.                                 return false;
  98.                             } else
  99.                             {
  100.                                 value = v1.Split('\n')[0];
  101.                            
  102.                             }
  103.                         }
  104.                         else if (v2 == 1)
  105.                         {
  106.                             if (v1[0] != '\n' || v1[v1.Length - 1] != '\n' )
  107.                             {
  108.                                 return false;
  109.                             } else
  110.                             {
  111.                                 value = v1.Split('\n')[1];
  112.                            
  113.                             }
  114.                         }
  115.                         else  
  116.                         {
  117.                             if (v1[0] != '\n')
  118.                             {
  119.                                 return false;
  120.                             } else
  121.                             {
  122.                                 value = v1.Split('\n')[1];
  123.                                
  124.                             }
  125.                         }
  126.  
  127.                         if (value.IndexOf(' ')<0)
  128.                         {
  129.                             if (Array.IndexOf(thresholdValues, value) < 0)
  130.                             return false;
  131.                         }
  132.                         else
  133.                         {
  134.                             int part1 = Int32.Parse(value.Split(' ')[0]);
  135.                             string part2 = value.Split(' ')[1];
  136.                             int index = Array.IndexOf(trackingCodeValues, part2);
  137.                             if (index < 0 || (part1 < minValues[index] || part1 > maxValues[index]))
  138.                             {
  139.  
  140.                                 return false;
  141.  
  142.                             }
  143.                         }
  144.                      
  145.  
  146.                         return true;
  147.                        
  148.  
  149.         }
  150.     }
  151.                
  152.              
  153.  
  154.             }
  155.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement