/[projects]/dao/DaoMqPump2/MQFilter/FilterController.cs
ViewVC logotype

Diff of /dao/DaoMqPump2/MQFilter/FilterController.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2170 by torben, Fri May 16 21:10:02 2014 UTC revision 2171 by torben, Fri May 16 21:50:17 2014 UTC
# Line 133  namespace MQFilter Line 133  namespace MQFilter
133                          queueIndbakke.Get(mqMsg, mqGetMsgOpts);                          queueIndbakke.Get(mqMsg, mqGetMsgOpts);
134                          if (mqMsg.Format.CompareTo(MQC.MQFMT_STRING) == 0)                          if (mqMsg.Format.CompareTo(MQC.MQFMT_STRING) == 0)
135                          {                          {
136                              string msgString = mqMsg.ReadString(mqMsg.MessageLength);                              string saltiiString = mqMsg.ReadString(mqMsg.MessageLength);
137                              //System.Console.WriteLine(msgString);                              //System.Console.WriteLine(msgString);
138    
139    
140                              // Hvis transaktionen starter med et ? er det ikke en gyldig transaktion                              // Hvis transaktionen starter med et ? er det ikke en gyldig transaktion
141                              // validér ligeledes at headeren er gyldig                              // validér ligeledes at headeren er gyldig
142                              if (msgString.StartsWith("?") || Salt2Helper.validateSalt2Header(msgString) == false)                              if (saltiiString.StartsWith("?") || Salt2Helper.validateSalt2Header(saltiiString) == false)
143                              {                              {
144                                  string discarded_filename = Logfile.getLogFilename(LogfileType.LogTransactions, logDirectory, "filter");                                  string discarded_filename = Logfile.getLogFilename(LogfileType.LogTransactions, logDirectory, "filter");
145                                  using (StreamWriter discardedlog = new StreamWriter(discarded_filename, true))                                  using (StreamWriter discardedlog = new StreamWriter(discarded_filename, true))
146                                  {                                  {
147                                      discardedlog.WriteLine(Logfile.getNowString() + " " + msgString);                                      discardedlog.WriteLine(Logfile.getNowString() + " " + saltiiString);
148                                  }                                  }
149                                  continue; //gå frem til at tage næste transaktion fra køen                                  continue; //gå frem til at tage næste transaktion fra køen
150                              }                              }
151    
152                                MQPutMessageOptions pmo = new MQPutMessageOptions(); // accept the defaults,
153                                // same as MQPMO_DEFAULT
154    
155                                MQMessage msg = new MQMessage();
156                                msg.Format = MQC.MQFMT_STRING;
157                                msg.CharacterSet = 1252;
158                                msg.WriteString(saltiiString);
159    
160                                Salt2Header header = Salt2Helper.parseHeader(saltiiString);
161                                queueMysql.Put(msg, pmo);
162                                if (saveForLater(header))
163                                {
164                                    queueStore.Put(msg, pmo);
165                                }
166                                else
167                                {
168                                    queueDimaps.Put(msg, pmo);
169                                }
170    
171    
172    
# Line 217  namespace MQFilter Line 231  namespace MQFilter
231              }              }
232          }          }
233    
234            private Boolean saveForLater(Salt2Header header)
235            {
236                DateTime now = DateTime.Now;
237                int hour = now.Hour;
238                if (hour >= 14 && hour < 18)
239                {
240                    
241                    if (contains(header.transaktionForkortelse, this.filterTranscations) ) //Så længe vi skal være net3.0 kompatible er LINQ problematisk
242                    {
243                        return true;
244                    }
245                    else
246                    {
247                        return false;
248                    }
249                }
250                else //normal operation - send straight trough
251                {
252                    return false;
253                }
254    
255            }
256    
257            private bool contains(string needle, string[] haystack) // s
258            {
259                foreach(string hay in haystack)
260                {
261                    if (needle.Equals(hay))
262                    {
263                        return true;
264                    }
265                }
266    
267                return false;            
268            }
269    
270          private void closeQueue(MQQueue queue)          private void closeQueue(MQQueue queue)
271          {          {
272              if (queue != null && queue.IsOpen)              if (queue != null && queue.IsOpen)

Legend:
Removed from v.2170  
changed lines
  Added in v.2171

  ViewVC Help
Powered by ViewVC 1.1.20