private static BindableCollection <SpecTraceStepViewModel> ParseTrace(string trace, IFileLocationParser fileLocationParser, IFileLocationMapper fileLocationMapper) { BindableCollection <SpecTraceStepViewModel> traceLines = new BindableCollection <SpecTraceStepViewModel>(); if (!String.IsNullOrEmpty(trace)) { foreach (string traceLine in trace.Split(new char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries)) { traceLines.Add(SpecTraceStepViewModel.Create(traceLine, fileLocationParser, fileLocationMapper)); } } return(traceLines); }
public static SpecTraceStepViewModel Create(string traceLine, IFileLocationParser fileLocationParser, IFileLocationMapper fileLocationMapper) { string methodName = null; string scriptLocation = null; if (TryParseFirefoxSafari(traceLine, ref methodName, ref scriptLocation) || TryParseIEChrome(traceLine, ref methodName, ref scriptLocation)) { SpecTraceStepViewModel specTraceStepViewModel = new SpecTraceStepViewModel(); specTraceStepViewModel.Message = traceLine; specTraceStepViewModel.MethodName = String.IsNullOrEmpty(methodName) ? "<anonymous>" : methodName; specTraceStepViewModel.ScriptLocation = fileLocationParser.Parse(scriptLocation); specTraceStepViewModel.MappedLocation = fileLocationMapper.Map(specTraceStepViewModel.ScriptLocation); return(specTraceStepViewModel); } return(new SpecTraceStepViewModel() { Message = traceLine }); }