public static bool ConfirmSubmitCapitalRequest(TradeLink.AppKit.Results rs, bool skip, TradeLink.API.DebugDelegate deb) { d = deb; if (skip) { return(false); } CapitalRequestConfim crc = new CapitalRequestConfim(); bool ok = false; if (crc.InvokeRequired) { crc.Invoke(new capcondel(ConfirmSubmitCapitalRequest), new object[] { rs, skip, deb }); } else { DialogResult dr = crc.ShowDialog(); if (!crc.AskAgain) { // disable tracking } ok = dr == DialogResult.Yes; } if (!ok) { return(false); } return(CapitalRequest.Submit(crc.Email, rs, deb)); }
public static bool Submit(string url, CapitalRequest cr, TradeLink.API.DebugDelegate deb) { d = deb; if (cr.usingresults && !ResultsSubmittable(cr.SubmittedResults)) { debug("To submit capital connection request, results must be profitable over at least two symbol days."); return false; } HttpWebRequest hr = WebRequest.Create(url) as HttpWebRequest; //hr.Credentials = new System.Net.NetworkCredential(user, password); //hr.PreAuthenticate = true; //hr.Headers.Add( hr.Method = "POST"; //hr.ContentType = "application/xml"; XmlWriterSettings writerSettings = new XmlWriterSettings(); writerSettings.OmitXmlDeclaration = true; System.IO.StringWriter stringWriter = new System.IO.StringWriter(); System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(CapitalRequest)); XmlWriter xmlWriter = XmlTextWriterFormattedNoDeclaration.Create(stringWriter, writerSettings); System.Xml.Serialization.XmlSerializerNamespaces ns = new System.Xml.Serialization.XmlSerializerNamespaces(); ns.Add("", ""); serializer.Serialize(xmlWriter, cr, ns); string xml = stringWriter.ToString(); System.Xml.Linq.XDocument xd = System.Xml.Linq.XDocument.Parse(xml); StringBuilder sb = new StringBuilder(); // get parameter list int i = 0; foreach (System.Xml.Linq.XElement xe in xd.Descendants()) { if (xe.HasElements) continue; if (i++ > 0) sb.Append("&"); if (xe.Name.LocalName.ToLower() == "result") sb.Append(xe.Name.LocalName + "=" + System.Web.HttpUtility.HtmlEncode(xe.Value)); else sb.Append(xe.Name.LocalName + "=" + xe.Value); } string data = sb.ToString(); // encode byte[] bytes = UTF8Encoding.UTF8.GetBytes(data); hr.ContentLength = bytes.Length; // prepare id int id = 0; try { // write it System.IO.Stream post = hr.GetRequestStream(); post.Write(bytes, 0, bytes.Length); // get response System.IO.StreamReader response = new System.IO.StreamReader(hr.GetResponse().GetResponseStream()); // get string version string key = response.ReadToEnd(); // display it debug("added request: "+key); return true; } catch (Exception ex) { debug("error adding: "+Util.Serialize<CapitalRequest>(cr)+" "+ex.Message + ex.StackTrace); return false; } }
public static bool Submit(string url, CapitalRequest cr) { return Submit(url, cr, null); }
public static bool Submit(CapitalRequest cr, DebugDelegate deb) { return Submit(PUBLICURL, cr, deb); }
public static bool Submit(CapitalRequest cr) { return Submit(PUBLICURL, cr, null); }
public static bool Submit(string url, CapitalRequest cr, TradeLink.API.DebugDelegate deb) { d = deb; if (cr.usingresults && !ResultsSubmittable(cr.SubmittedResults)) { debug("To submit capital connection request, results must be profitable over at least two symbol days."); return(false); } HttpWebRequest hr = WebRequest.Create(url) as HttpWebRequest; //hr.Credentials = new System.Net.NetworkCredential(user, password); //hr.PreAuthenticate = true; //hr.Headers.Add( hr.Method = "POST"; //hr.ContentType = "application/xml"; XmlWriterSettings writerSettings = new XmlWriterSettings(); writerSettings.OmitXmlDeclaration = true; System.IO.StringWriter stringWriter = new System.IO.StringWriter(); System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(CapitalRequest)); XmlWriter xmlWriter = XmlTextWriterFormattedNoDeclaration.Create(stringWriter, writerSettings); System.Xml.Serialization.XmlSerializerNamespaces ns = new System.Xml.Serialization.XmlSerializerNamespaces(); ns.Add("", ""); serializer.Serialize(xmlWriter, cr, ns); string xml = stringWriter.ToString(); System.Xml.Linq.XDocument xd = System.Xml.Linq.XDocument.Parse(xml); StringBuilder sb = new StringBuilder(); // get parameter list int i = 0; foreach (System.Xml.Linq.XElement xe in xd.Descendants()) { if (xe.HasElements) { continue; } if (i++ > 0) { sb.Append("&"); } if (xe.Name.LocalName.ToLower() == "result") { sb.Append(xe.Name.LocalName + "=" + System.Web.HttpUtility.HtmlEncode(xe.Value)); } else { sb.Append(xe.Name.LocalName + "=" + xe.Value); } } string data = sb.ToString(); // encode byte[] bytes = UTF8Encoding.UTF8.GetBytes(data); hr.ContentLength = bytes.Length; // prepare id int id = 0; try { // write it System.IO.Stream post = hr.GetRequestStream(); post.Write(bytes, 0, bytes.Length); // get response System.IO.StreamReader response = new System.IO.StreamReader(hr.GetResponse().GetResponseStream()); // get string version string key = response.ReadToEnd(); // display it debug("added request: " + key); return(true); } catch (Exception ex) { debug("error adding: " + Util.Serialize <CapitalRequest>(cr) + " " + ex.Message + ex.StackTrace); return(false); } }
public static bool Submit(string url, CapitalRequest cr) { return(Submit(url, cr, null)); }
public static bool Submit(CapitalRequest cr, DebugDelegate deb) { return(Submit(PUBLICURL, cr, deb)); }
public static bool Submit(CapitalRequest cr) { return(Submit(PUBLICURL, cr, null)); }