Ejemplo n.º 1
0
        public TemplateResponse SendTemplates(ITemplate template)
        {
            var templateId = -1;
            var error = "unknown";
            var status = RequestResultType.Error;

            var xml = template.ToXml();

            StringBuilder location = new StringBuilder("");
            location.Append(_url);
            location.Append("/xml/TemplateSubmit.aspx?");
            location.Append("UserName="******"&UserPassword="******"";

            try
            {
                response = webClientProxy.UploadString(location.ToString(), xml.ToString());
            }
            catch (WebException wex)
            {
                status = RequestResultType.Error;
                error = "Server Error: " + wex;
            }
            catch (TimeoutException tex)
            {
                status = RequestResultType.Error;
                error = "Server Error: " + tex;
            }
            catch (Exception ex)
            {
                status = RequestResultType.Error;
                error = "Error: " + ex;
            }

            var xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(response);

            status = RequestResultType.Success; // we have xml and it parsed correctly, so here we know request was made successfully

            var xnList = xmlDoc.SelectNodes("Templates");

            if (xnList.Count == 0)
            {
                error = xmlDoc.SelectNodes("PostAPIResponse/SaveTemplateResult")[0]["Exception"].InnerText;
            }
            else
            {
                error = "none";

                foreach (XmlNode xn in xnList)
                {
                    try
                    {
                        templateId = Convert.ToInt32(xn["TemplateID"].InnerText);
                    }
                    catch (Exception)
                    {
                        status = RequestResultType.Error;
                        error = xn["Exception"].InnerText;
                    }
                }
            }

            return new TemplateResponse { TemplateId = templateId, Status = status, Error = error };
        }