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); }
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); }