private void ProcessSubmit(WebBrowserDocumentCompletedEventArgs e)
{
NameValueCollection urlParameters = HttpUtility.ParseQueryString( e.Url.ToString() );
if (urlParameters.Count > 0 && XmlData != null)
{
bool processedParams = false;
var xml = new XmlDocument();
xml.LoadXml( Encoding.UTF8.GetString( XmlData ) );
foreach (string k in urlParameters.AllKeys)
{
string key = k;
if (!string.IsNullOrEmpty( key ))
{
string value = urlParameters.Get( key );
processedParams = true;
if (key.Contains( "?" ))
key = key.Substring( key.IndexOf( "?", StringComparison.Ordinal ) + 1 );
string[] parts = key.Split( ':' );
if (parts.Length > 1)
{
string id = "RES-" + parts[1];
XmlNodeList nl = xml.SelectNodes( string.Format( "//result[@id='{0}']", id ) );
if (nl.Count > 0)
{
var element = nl[0] as XmlElement;
if (element != null)
{
if ("text".Equals( parts[0] ))
{
element.AppendChild( xml.CreateTextNode( value ) );
}
else
{
element.SetAttribute( parts[0], value );
}
}
}
}
LogManager.Trace( "{0}={1}", key, urlParameters.Get( key ) );
}
if (processedParams)
{
var sw = new StringWriter();
XmlWriter writer = new UTRSXmlWriter( sw );
xml.WriteTo( writer );
_xmlData = Encoding.UTF8.GetBytes( sw.ToString() );
string html = XmlUtils.Transform( _xslData, XmlData );
_translatedData = Encoding.UTF8.GetBytes( html );
File.WriteAllText( _tempFileName, html );
webBrowser.Navigate( _tempFileName );
}
}
}
}