TechGeek

Untitled

Apr 28th, 2020
285
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. public Tester(IDictionary<string, StringValues> headers)
  2.  {
  3.      if (headers == null)
  4.      {
  5.          ProcId = GenerateProcId();
  6.          DbId = GenerateDbId();
  7.          ThetaId = GenerateThetaId();
  8.          return;
  9.      }
  10.  
  11.      ThetaId = GenerateThetaId();
  12.  
  13.  
  14.     var headerKeys = new[]{
  15.         "PROC_HEADER",
  16.         "DB_HEADER",
  17.         "TEXT_HEADER",
  18.         "ALPHA_HEADER",
  19.         "TIMEOUT_HEADER",
  20.         "FILTER_HEADER",
  21.         "PREVIEW_HEADER",
  22.         "ANT_HEADER",
  23.         "APP_HEADER",
  24.         "PAGE_HEADER",
  25.         "LOCAL_HEADER",
  26.         "CONTEXT_HEADER",  
  27.         "CHANNEL_HEADER"
  28.     };
  29.  
  30.  
  31.     foreach(var key in headerKeys)
  32.     {
  33.          headers.TryGetValue(key, out var headerValue);
  34.  
  35.          if (headerValuesheaderValue.Count > 0)
  36.          {  
  37.             if(!string.IsNullOrWhiteSpace(headerValue[0]))
  38.             {
  39.                 switch(key)
  40.                 {
  41.                     case "PROC_HEADER":
  42.                         ProcIdHeader = headerValue[0];
  43.                         ProcId = ProcIdHeader;
  44.                         break;
  45.                     case "DB_HEADER":
  46.                         DbIdHeader = headerValue[0];
  47.                         DbId = DbIdHeader;
  48.                         break;      
  49.                     case "TEXT_HEADER":
  50.                          int.TryParse(headerValue[0], out var textId);
  51.                          TextIdValue = textId;
  52.                          TextId = textId;              
  53.                         break;              
  54.                     case "ALPHA_HEADER":
  55.                         AlphaHeader = headerValue[0];
  56.                         AlphaContent = AlphaHeader;
  57.                         break;
  58.                     case "TIMEOUT_HEADER":
  59.                         TimeoutId = headerValue[0];
  60.                         break;      
  61.                     case "FILTER_HEADER":
  62.                         FilterId = headerValue[0];
  63.                         break;          
  64.                     case "PREVIEW_HEADER":
  65.                         PreviewId = headerValue[0];
  66.                         break;          
  67.                     case "ANT_HEADER":
  68.                         AntId = headerValue[0];
  69.                         break;      
  70.                     case "LOCAL_HEADER":
  71.                         LocalHeader = headerValue[0];
  72.                         break;      
  73.                     case "CONTEXT_HEADER":
  74.                         ContextHeader = headerValue[0];
  75.                         break;                                          
  76.                     case "APP_HEADER":
  77.                         AppId = headerValue[0];
  78.                         break;  
  79.                     case "PAGE_HEADER":
  80.                         PageStr = headerValue[0];
  81.                         break;  
  82.                     case "CHANNEL_HEADER":
  83.                         ChannelId = headerValue[0];
  84.                         break;                              
  85.                 }
  86.             }      
  87.         }  
  88.     }
  89.  
  90.     // recheck
  91.  
  92.     if (string.IsNullOrWhiteSpace(DbId)) { DbId = GenerateDbId(); }
  93.  
  94.     if (string.IsNullOrWhiteSpace(ProcId)) { ProcId = GenerateProcId(); }
  95.  
  96.     if (ContextHeader != null)
  97.     {
  98.         ContextStr = DeserializeHeader<ContextStr>(ContextHeader);      
  99.     }
  100.  
  101.     if (LocalHeader != null)
  102.     {
  103.         LocalStr = DeserializeHeader<LocalStr>(LocalHeader);
  104.     }
  105.  
  106. }
  107.  
  108.  
  109. private T DeserializeHeader<T>(string str) where T : new()
  110. {
  111.     try
  112.     {
  113.         return JsonSerializer.Deserialize<T>(str);
  114.     }
  115.     catch (Exception e)
  116.     {
  117.         return new T();
  118.     }
  119.  
  120.     return default;
  121. }
RAW Paste Data