// public for testing
public DiaNavigationData GetNavigationData(string className, string methodName)
{
if (this.DiaSession == null)
{
return(null);
}
var navData = DiaSession.GetNavigationData(className, methodName);
if (navData != null && navData.FileName != null)
{
return(navData);
}
// DiaSession.GetNavigationData returned null, see if it's an async method.
if (AsyncMethodHelper != null)
{
string stateMachineClassName = AsyncMethodHelper.GetClassNameForAsyncMethod(className, methodName);
if (stateMachineClassName != null)
{
navData = diaSession.GetNavigationData(stateMachineClassName, "MoveNext");
}
}
if (navData == null || navData.FileName == null)
{
logger.SendWarningMessage(string.Format("No source data found for {0}.{1}", className, methodName));
}
return(navData);
}