Example #1
0
        public bool Parse(string text)
        {
            string parsedMiscTraceData;
            string acctId;

            if (tryParseMiscellaneousTraceData(text, out acctId, out parsedMiscTraceData))
            {
                _output = new MiscellaneousTraceDataAnalysis(acctId, parsedMiscTraceData);
                return(true);
            }
            return(false);
        }
Example #2
0
        private bool tryCreateNewAccountFromTraceData(MiscellaneousTraceDataAnalysis miscTraceData, out NewBookingInfo newAccount)
        {
            newAccount = null;
            var ACCOUNT_CREATED_PATTERN = @"Created account.*customer.*\[(.+?),\s*(.+?)\].*TransactionId.*\[(.*)\]";
            var m = Regex.Match(miscTraceData.ParsedMiscTraceData, ACCOUNT_CREATED_PATTERN);

            if (m.Success && m.Groups.Count > 3)
            {
                newAccount = new NewBookingInfo {
                    AccountId           = miscTraceData.AccountId,
                    CustomerFirstName   = m.Groups[1].Value,
                    CustomerLastName    = m.Groups[2].Value,
                    ClientTransactionId = m.Groups[3].Value
                };
                if (string.IsNullOrEmpty(newAccount.ClientTransactionId))
                {
                    newAccount.ClientTransactionId = "AUTO-" + Guid.NewGuid().ToString();
                }
            }
            return(m.Success);
        }
Example #3
0
 private bool tryParseNewAccountCreated(string text, out NewBookingInfo newAccount, out MiscellaneousTraceDataAnalysis miscTraceDataAnalysis)
 {
     newAccount            = null;
     miscTraceDataAnalysis = null;
     if (_miscBookingTraceDataParser.Parse(text))
     {
         miscTraceDataAnalysis = _miscBookingTraceDataParser.Output as MiscellaneousTraceDataAnalysis;
         if (miscTraceDataAnalysis != null)
         {
             if (tryCreateNewAccountFromTraceData(miscTraceDataAnalysis, out newAccount))
             {
                 return(true);
             }
         }
     }
     return(false);
 }