Exemple #1
1
        // Creates XmlDocument from html content and return it with rootitem "<root>".
        public static XmlDocument ParseHtml(string sContent)
        {
            StringReader sr = new StringReader("<root>" + sContent + "</root>");
            SgmlReader reader = new SgmlReader();
            reader.WhitespaceHandling = WhitespaceHandling.All;
            reader.CaseFolding = Sgml.CaseFolding.ToLower;
            reader.InputStream = sr;

            StringWriter sw = new StringWriter();
            XmlTextWriter w = new XmlTextWriter(sw);
            w.Formatting = Formatting.Indented;
            w.WriteStartDocument();
            reader.Read();
            while (!reader.EOF)
            {
                w.WriteNode(reader, true);
            }
            w.Flush();
            w.Close();

            sw.Flush();

            // create document
            XmlDocument doc = new XmlDocument();
            doc.PreserveWhitespace = true;
            doc.XmlResolver = null;
            doc.LoadXml(sw.ToString());

            reader.Close();

            return doc;
        }
        /// <summary>
        /// Sessions the info to string.
        /// </summary>
        /// <param name="sessionInfo">The session info.</param>
        /// <returns></returns>
        public static string SessionInfoToString(SessionInfo sessionInfo)
        {
            if (sessionInfo == null)
                return null;

            StringBuilder sb = new StringBuilder();
            StringWriter sw = new StringWriter(sb);

            XmlSerializer xml = new XmlSerializer(typeof(SessionInfo));
            xml.Serialize(sw, sessionInfo);
            sw.Flush();

            CryptoString cry = new CryptoString(_key, CryptoString.Method.Encrypt, sb.ToString());
            string ret = cry.Execute();
            sb.Remove(0, sb.Length);
            if (Regex.IsMatch(ret, @".*[Oo][Nn][a-zA-Z]*=*$"))
            {
                sessionInfo.ConnectionString += ';';
                xml.Serialize(sw, sessionInfo);
                sw.Flush();
                cry = new CryptoString(_key, CryptoString.Method.Encrypt, sb.ToString());
                ret = cry.Execute();
            }

            sw.Close();
            return ret;
        }
        public static void ExtractJSILTemplate(string name, string targetPath)
        {
            Stream jsilTemplateStream = GetTransparentDecompressionStream(
                Assembly.GetExecutingAssembly().GetManifestResourceStream(
                "Protobuild.BuildResources.JSILTemplate.htm.gz"));

            using (var stream = jsilTemplateStream)
            {
                using (var writer = new StringWriter())
                {
                    using (var reader = new StreamReader(stream))
                    {
                        var text = reader.ReadToEnd();
                        text = text.Replace("{NAME}", name);
                        writer.Write(text);
                        writer.Flush();
                    }

                    var content = writer.GetStringBuilder().ToString();

                    using (var fileWriter = new StreamWriter(targetPath))
                    {
                        fileWriter.Write(content);
                    }
                }
            }
        }
		/// <summary>
		/// Removes a comments and unnecessary whitespace from JavaScript code
		/// </summary>
		/// <param name="content">JavaScript content</param>
		/// <returns>Minified JavaScript content</returns>
		public String Minify(string content)
		{
			string minifiedContent;

			lock (_minificationSynchronizer)
			{
				_theA = 0;
				_theB = 0;
				_theLookahead = EOF;
				_theX = EOF;
				_theY = EOF;

				using (_reader = new StringReader(content))
				using (_writer = new StringWriter())
				{
					InnerMinify();
					_writer.Flush();

					minifiedContent = _writer.ToString().TrimStart();
				}

				_reader = null;
				_writer = null;
			}

			return minifiedContent;
		}
Exemple #5
0
        private void CreateModel()
        {
            var gen = Prepare();
            if (gen == null) return;
            try
            {
                gen.TargetFolder = null;
                gen.SingleFile = true;
                using (var sw = new StringWriter())
                {
                    gen.OutputStream = sw;
                    gen.GenerateClasses();
                    sw.Flush();
                  string  lastGeneratedString = sw.ToString();
                  string result = JsonConvert.SerializeObject(new { content = lastGeneratedString });
                  Response.Write(result);
                  Response.End();
                }

            }
            catch (Exception ex)
            {
              //  MessageBox.Show(this, "Unable to generate the code: " + ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
              //  string result = JsonConvert.SerializeObject(new { content = ex.Message });
             //   Response.Write(result);
              //  Response.End();
            }
        }
 public static void CreateSchema()
 {
     var sw = new StringWriter();
     IDbConnection connection = CreateSession().Connection;
     new SchemaExport(_cfg).Execute(true, true, false, connection, sw);
     sw.Flush();
 }
        /// <summary>
        /// Renders an action result to a string. This is done by creating a fake http context
        /// and response objects and have that response send the data to a string builder
        /// instead of the browser.
        /// </summary>
        /// <param name="result">The action result to be rendered to string.</param>
        /// <returns>The data rendered by the given action result.</returns>
        protected string RenderActionResultToString(ActionResult result)
        {
            // Create memory writer.
            var sb = new StringBuilder();
            var memWriter = new StringWriter(sb);

            // Create fake http context to render the view.
            var fakeResponse = new HttpResponse(memWriter);
            var fakeContext = new HttpContext(System.Web.HttpContext.Current.Request, fakeResponse);
            var fakeControllerContext = new ControllerContext(
                new HttpContextWrapper(fakeContext),
                this.ControllerContext.RouteData,
                this.ControllerContext.Controller);
            var oldContext = System.Web.HttpContext.Current;
            System.Web.HttpContext.Current = fakeContext;

            // Render the view.
            result.ExecuteResult(fakeControllerContext);

            // Restore data.
            System.Web.HttpContext.Current = oldContext;

            // Flush memory and return output.
            memWriter.Flush();
            return sb.ToString();
        }
        public string CreateSpecs(out int specCount)
        {
            var files = FindSpecFiles().ToArray();
            specCount = files.Length;
            if (specCount < 1)
                return string.Empty;

            var compile = new CodeCompileUnit();

            var globalns = new CodeNamespace();
            globalns.Imports.Add(new CodeNamespaceImport("NUnit.Framework"));
            globalns.Imports.Add(new CodeNamespaceImport(config.MyNamespace));
            compile.Namespaces.Add(globalns);
            var specNamespace = new CodeNamespace(config.TargetNamespace + ".ChutzpahSpecs");
            compile.Namespaces.Add(specNamespace);

            foreach (var fileInfo in files)
            {
                AddSpec(specNamespace, fileInfo);
            }
            //specNamespace.Types.AddRange(files.Select(CreateSpec).ToArray());

            var provider = CreateProvider();
            var options = new CodeGeneratorOptions { BracingStyle = "C", BlankLinesBetweenMembers = false };
            var stringBuilder = new StringBuilder();
            using (var writer = new StringWriter(stringBuilder))
            {
                provider.GenerateCodeFromCompileUnit(compile, writer, options);
                writer.Flush();
                writer.Close();
            }
            var result = stringBuilder.ToString();
            return result;
        }
        public static string PrintToString(this ImmutableEnvelope envelope, Func<object, string> serializer)
        {
            using (var writer = new StringWriter(CultureInfo.InvariantCulture))
            {
                writer.WriteLine("{0,12}: {1}", "EnvelopeId", envelope.EnvelopeId);

                foreach (var attribute in envelope.Attributes)
                {
                    writer.WriteLine("{0,12}: {1}", attribute.Key, attribute.Value);
                }

                writer.WriteLine(envelope.Message.GetType().Name);
                try
                {
                    var buffer = serializer(envelope.Message);
                    writer.WriteLine(buffer);
                }
                catch (Exception ex)
                {
                    writer.WriteLine("Rendering failure");
                    writer.WriteLine(ex);
                }

                writer.WriteLine();
                writer.Flush();
                return writer.GetStringBuilder().ToString();
            }
        }
		private static void TestBuildCode(string fileName, string contentTypeName)
		{
		    ContentType contentType;
			var expectedOutput = "";
			using (var inputReader = File.OpenText(@"..\..\TestFiles\" + fileName + ".xml"))
			{
                contentType = new ContentTypeSerializer().Deserialize(inputReader);
            }
            using (var goldReader = File.OpenText(@"..\..\TestFiles\" + fileName + ".cs"))
			{
				expectedOutput = goldReader.ReadToEnd();
			}

			var configuration = new CodeGeneratorConfiguration();
		    configuration.TypeMappings.Add(new TypeMapping("1413afcb-d19a-4173-8e9a-68288d2a73b8", "Int32"));
		    var typeConfig = configuration.Get(contentTypeName);
		    typeConfig.BaseClass = "DocumentTypeBase";
		    typeConfig.Namespace = "Umbraco.CodeGen.Models";

		    var sb = new StringBuilder();
			var writer = new StringWriter(sb);

		    var factory = new DefaultCodeGeneratorFactory();
		    var dataTypeProvider = new TestDataTypeProvider();
		    var generator = new CodeGenerator(typeConfig, dataTypeProvider, factory);
		    generator.Generate(contentType, writer);

            writer.Flush();
            Console.WriteLine(sb.ToString());

			Assert.AreEqual(expectedOutput, sb.ToString());
		}
Exemple #11
0
        public string ParseDirectoryBrowsingHTML(string path, string[] dirs, string[] files)
        {
            var doc = new HtmlDocument();
            doc.Load(path);

            HtmlNode fileList = doc.DocumentNode.SelectSingleNode("//ul[@id='list']");

            StringBuilder listHTML = new StringBuilder();
            string listItemFormat = "<li>{0} <a href='{1}'>{2}</a></li>";

            foreach (string dir in dirs)
            {
                listHTML.Append(String.Format(listItemFormat, "D >", dir+"/", dir));
            }
            foreach (string file in files)
            {
                listHTML.Append(String.Format(listItemFormat, "F >", file, file));
            }

            fileList.InnerHtml = listHTML.ToString();

            string result = null;
            using (StringWriter writer = new StringWriter())
            {
                doc.Save(writer);
                result = writer.ToString();
                writer.Flush();
            }
            return result;
        }
        private static byte[] ExportToExcel(Dictionary<string, object> model, string templatePath)
        {
            TemplateManager template = TemplateManager.FromFile(templatePath);
            if (model != null)
            {
                foreach (string key in model.Keys)
                {
                    template.SetValue(key, model[key]);
                }
            }
            template.Functions.Add("DateToString", new TemplateFunction(DateToString));
            template.Functions.Add("GetDate", new TemplateFunction(GetDate));
            template.Functions.Add("GetMarket", new TemplateFunction(GetMarket));
            template.Functions.Add("GetSumBuyCount", new TemplateFunction(GetSumBuyCount));
            template.Functions.Add("GetSumBuyQuatity", new TemplateFunction(GetSumBuyQuatity));
            template.Functions.Add("GetSumSellCount", new TemplateFunction(GetSumSellCount));
            template.Functions.Add("GetSumSellQuatity", new TemplateFunction(GetSumSellQuatity));
            template.Functions.Add("GetSumChange", new TemplateFunction(GetSumChange));
            template.Functions.Add("GetSumDVDMTrungBinhTrenLenh", new TemplateFunction(GetSumDVDMTrungBinhTrenLenh));
            template.Functions.Add("GetSumDVDBTrungBinhTrenLenh", new TemplateFunction(GetSumDVDBTrungBinhTrenLenh));
            template.Functions.Add("GetSumVolume", new TemplateFunction(GetSumVolume));
            template.Functions.Add("GetSumTotalValue", new TemplateFunction(GetSumTotalValue));          
                        
            StringWriter writer = new StringWriter();
            template.Process(writer);
            writer.Flush();

            byte[] data = Encoding.UTF8.GetBytes(writer.GetStringBuilder().ToString());

            return data;
        }
Exemple #13
0
        /// <summary>
        /// Convert parameter list to json object
        /// </summary>
        public static string parameterFieldMapJson(parameters parms, string ProjectID, string QueryID)
        {
            StringWriter sw = new StringWriter();
            JsonTextWriter json = new JsonTextWriter(sw);

            json.WriteStartObject();
            json.WritePropertyName("results");
            json.WriteStartArray();
            json.WriteStartObject();
            // ProjectID and QueryID
            json.WritePropertyName("ProjectID");
            json.WriteValue(ProjectID);
            json.WritePropertyName("QueryID");
            json.WriteValue(QueryID);

            json.WritePropertyName("parameters");
            json.WriteRawValue(JsonConvert.SerializeObject(parms));

            json.WriteEndObject();
            json.WriteEndArray();
            json.WriteEndObject();

            json.Flush();
            sw.Flush();

            return sw.ToString();
        }
Exemple #14
0
        public static string RenderActionToString(this HtmlHelper helper, HttpRequest request, string controller, string action)
        {
            //Create memory writer
            var sb = new StringBuilder();
            var memWriter = new StringWriter(sb);

            //Create fake http context to render the view
            var fakeResponse = new HttpResponse(memWriter);
            var fakeContext = new HttpContext(request, fakeResponse);
            var fakeControllerContext = new ControllerContext(
                new HttpContextWrapper(fakeContext),
                helper.ViewContext.RouteData,
                helper.ViewContext.Controller);

            var oldContext = HttpContext.Current;
            HttpContext.Current = fakeContext;

            //Use HtmlHelper to render partial view to fake context
            var html = new HtmlHelper(new ViewContext(fakeControllerContext,
                new FakeView(), new ViewDataDictionary(), new TempDataDictionary(), memWriter),
                new ViewPage());
            html.RenderAction(action, controller);

            //Restore context
            HttpContext.Current = oldContext;

            //Flush memory and return output
            memWriter.Flush();
            return sb.ToString();
        }
        protected void TestBuildCode(string classFileName, string xmlFileName, string contentTypeName)
        {
            ContentType contentType;
            var expectedOutput = "";
            using (var inputReader = File.OpenText(@"..\..\TestFiles\" + xmlFileName + ".xml"))
            {
                contentType = new ContentTypeSerializer().Deserialize(inputReader);
            }
            using (var goldReader = File.OpenText(@"..\..\TestFiles\" + classFileName + ".cs"))
            {
                expectedOutput = goldReader.ReadToEnd();
            }

            var configuration = CodeGeneratorConfiguration.Create();
            var typeConfig = configuration.Get(contentTypeName);
            typeConfig.BaseClass = "Umbraco.Core.Models.TypedModelBase";
            typeConfig.Namespace = "Umbraco.CodeGen.Models";

            configuration.TypeMappings.Add(new TypeMapping("Umbraco.Integer", "Int32"));

            OnConfiguring(configuration, contentTypeName);

            var sb = new StringBuilder();
            var writer = new StringWriter(sb);

            var dataTypeProvider = new TestDataTypeProvider();
            var generator = new CodeGenerator(typeConfig, dataTypeProvider, CreateGeneratorFactory());

            generator.Generate(contentType, writer);

            writer.Flush();
            Console.WriteLine(sb.ToString());

            Assert.AreEqual(expectedOutput, sb.ToString());
        }
Exemple #16
0
        public void UrlRequestCall_ShouldBe_Profiled()
        {
            // Arrange
            var originalConsoleOut = Console.Out;
            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);
                try
                {
                    IUrlRequest profilerUrlRequest = new ProfilerUrlRequest();

                    // Act
                    var content = profilerUrlRequest.GetUrlContent("http://www.google.de");
                    writer.Flush();
                    var consoleOutput = writer.GetStringBuilder().ToString();

                    // Assert
                    Assert.IsNotNull(content);
                    Assert.IsNotNull(consoleOutput);
                    Assert.IsTrue(consoleOutput.StartsWith("Method 'string GetUrlContent(string url)', Duration (ms):"));
                }
                finally
                {
                    Console.SetOut(originalConsoleOut);
                }
            }
        }
        /// <summary>
        /// 获取设计时HTML
        /// </summary>
        /// <returns></returns>
        public override string GetDesignTimeHtml()
        {
            try
            {
                TabControl oTabStrip = ((TabControl)Component);

                if (oTabStrip.Items == null || oTabStrip.Items.Count == 0)
                {
                    return GetEmptyDesignTimeHtml();
                }

                System.Text.StringBuilder oSB = new System.Text.StringBuilder();
                StringWriter oStringWriter = new StringWriter(oSB);
                HtmlTextWriter oWriter = new HtmlTextWriter(oStringWriter);

                oTabStrip.RenderDownLevelContent(oWriter);
                oWriter.Flush();
                oStringWriter.Flush();

                return oSB.ToString();
            }
            catch (Exception ex)
            {
                return CreatePlaceHolderDesignTimeHtml("生成设计时代码错误:\n\n" + ex.ToString());
            }
        }
 public virtual string ExecuteHandler(IHttpHandler handler)
 {
     var writer = new StringWriter();
     HttpContext.Current.Server.Execute(handler, writer, true);
     writer.Flush();
     return writer.GetStringBuilder().ToString();
 }
        public static StringReader GetGenerateProjectXSLT(string path)
        {
            Stream generateProjectStream;
            var generateProjectXSLT = Path.Combine(path, "Build", "GenerateProject.xslt");
            if (File.Exists(generateProjectXSLT))
                generateProjectStream = File.Open(generateProjectXSLT, FileMode.Open);
            else
                generateProjectStream = GetTransparentDecompressionStream(
                    Assembly.GetExecutingAssembly().GetManifestResourceStream(
                    "Protobuild.BuildResources.GenerateProject.xslt.gz"));

            using (var stream = generateProjectStream)
            {
                using (var writer = new StringWriter())
                {
                    var additional = "";
                    var additionalPath = Path.Combine(path, "Build", "AdditionalProjectTransforms.xslt");
                    if (File.Exists(additionalPath))
                    {
                        using (var reader = new StreamReader(additionalPath))
                        {
                            additional = reader.ReadToEnd();
                        }
                    }
                    using (var reader = new StreamReader(stream))
                    {
                        var text = reader.ReadToEnd();
                        text = text.Replace("{ADDITIONAL_TRANSFORMS}", additional);
                        writer.Write(text);
                        writer.Flush();
                    }
                    return new StringReader(writer.GetStringBuilder().ToString());
                }
            }
        }
        public static string Decode(string contents)
        {
            if (contents == null)
            {
                throw new ArgumentNullException("contents");
            }
   
            using (StringWriter writer = new StringWriter())
            {
                using (StringReader reader = new StringReader(contents))
                {
                    string line;
                    while ((line = reader.ReadLine()) != null)
                    {
                        /*remove trailing line whitespace that may have
                         been added by a mail transfer agent per rule
                         #3 of the Quoted Printable section of RFC 1521.*/
                        line.TrimEnd();

                        if (line.EndsWith(Equal))
                        {
                            writer.Write(DecodeLine(line));
                        } //handle soft line breaks for lines that end with an "="
                        else
                        {
                            writer.WriteLine(DecodeLine(line));
                        }
                    }
                }
                writer.Flush();

                return writer.ToString();
            }
        }
Exemple #21
0
        string RunScript(string source, bool execute)
        {
            CompilerResults results;

            using (var provider = new IACodeProvider())
            {
                var options = new IACompilerParameters { GenerateExecutable = false, GenerateInMemory = true, Merge = true, MergeFallbackToLink = true };
                results = provider.CompileAssemblyFromFile(options, source);
            }

            var buffer = new StringBuilder();

            using (var writer = new StringWriter(buffer))
            {
                Console.SetOut(writer);

                if (execute)
                    results.CompiledAssembly.EntryPoint.Invoke(null, null);

                writer.Flush();
            }

            string output = buffer.ToString();

            using (var console = Console.OpenStandardOutput())
            {
                var stdout = new StreamWriter(console);
                stdout.AutoFlush = true;
                Console.SetOut(stdout);
            }

            return output;
        }
        public void JsonWriter_EscapeCharacters()
        {
            var body = new Dictionary<string, object>();
            body.Add("b", "\b");
            body.Add("t", "\t");
            body.Add("n", "\n");
            body.Add("f", "\f");
            body.Add("r", "\r");
            body.Add("q", "\"");
            body.Add("rs", "\\");
            var sb = new StringBuilder();
            using (var sw = new StringWriter(sb))
            {
                var jw = new JsonWriter(sw);
                jw.WriteValue(body);
                sw.Flush();
            }

            Assert.AreEqual("{" +
                @"""b"":""\u0008""," +
                @"""t"":""\u0009""," +
                @"""n"":""\u000a""," +
                @"""f"":""\u000c""," +
                @"""r"":""\u000d""," +
                @"""q"":""\""""," +
                @"""rs"":""\\""" + "}",
                sb.ToString());
        }
        private void createContent(String varName, Object objectToPass, StringReader reader, String outputFileName)
        {
            Dictionary<String, Object> map = new Dictionary<String, Object>();
            map.Add(varName, objectToPass);

            String outputContent = null;
            StringTemplateGroup group = new StringTemplateGroup(reader);
            var contentTemplate = group.GetInstanceOf("Content");
            contentTemplate.Attributes = map;
            outputContent = contentTemplate.ToString();
            //StringBuilder sb = new StringBuilder(outputContent);
            StringWriter writer = new StringWriter(new StringBuilder(outputContent));
            writer.Flush();
            StreamWriter fileWriter = null;
            try
            {
                fileWriter = new StreamWriter(outputFileName + "/report.html.data");
                fileWriter.Write(writer.ToString());
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }

            writer.Close();
            fileWriter.Close();
        }
        public static string ToJsonString(this JToken token)
        {
            if (token == null)
            {
                throw new ArgumentNullException("token");
            }

            // The following code is different from token.ToString(), which special-cases null to return "" instead of
            // "null".
            StringWriter stringWriter = new StringWriter(CultureInfo.InvariantCulture);
            try
            {
                using (JsonWriter jsonWriter = JsonSerialization.CreateJsonTextWriter(stringWriter))
                {
                    token.WriteTo(jsonWriter);
                    jsonWriter.Flush();
                    stringWriter.Flush();

                    string result = stringWriter.ToString();
                    stringWriter = null;

                    return result;
                }
            }
            finally
            {
                if (stringWriter != null)
                {
                    stringWriter.Dispose();
                }
            }
        }
        public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            if (_bundleManager.Exists(Source))
            {
                var result = (await _smidgeHelper.GenerateJsUrlsAsync(Source, Debug)).ToArray();
                var currAttr = output.Attributes.ToDictionary(x => x.Name, x => x.Value);
                using (var writer = new StringWriter())
                {
                    foreach (var s in result)
                    {
                        var builder = new TagBuilder(output.TagName)
                        {
                            TagRenderMode = TagRenderMode.Normal
                        };
                        builder.MergeAttributes(currAttr);
                        builder.Attributes["src"] = s;

                        builder.WriteTo(writer, _encoder);
                    }
                    writer.Flush();
                    output.PostElement.SetContent(new HtmlString(writer.ToString()));
                }
                //This ensures the original tag is not written.
                output.TagName = null;
            }
            else
            {
                //use what is there
                output.Attributes["src"] = Source;
            }
        }
Exemple #26
0
        public override string ToString()
        {
            string doc;

            using (var sw = new StringWriter()) {
                using (var writer = new XmlTextWriter(sw)) {
                    writer.Formatting = Formatting.Indented;
                    //writer.WriteStartDocument();
                    writer.WriteProcessingInstruction("xml", "version=\"1.0\" encoding=\"utf-8\"");
                    writer.WriteStartElement("D", "multistatus", "DAV:");
                    for (int i = 0; i < _nameSpaceList.Count; i++) {
                        string tag = string.Format("ns{0}", i);
                        writer.WriteAttributeString("xmlns", tag, null, _nameSpaceList[i]);
                    }

                    foreach (var oneResponse in _ar) {
                        oneResponse.Xml(writer);
                    }
                    writer.WriteEndElement();
                    //writer.WriteEndDocument();
                    writer.Flush();
                    writer.Close();
                    doc = sw.ToString();
                    writer.Flush();
                    writer.Close();
                }
                sw.Flush();
                sw.Close();
            }
            return doc;
        }
Exemple #27
0
        /// <summary>Renders a view to string.</summary>
        public static string RenderViewToString(Controller controller, string viewName, object viewData)
        {
            //Create memory writer
            var sb = new StringBuilder();
            var memWriter = new StringWriter(sb);

            //Create fake http context to render the view
            var fakeResponse = new HttpResponse(memWriter);
            var fakeContext = new HttpContext(HttpContext.Current.Request, fakeResponse);
            var fakeControllerContext = new ControllerContext(
                new HttpContextWrapper(fakeContext),
                controller.ControllerContext.RouteData,
                controller.ControllerContext.Controller);

            var oldContext = HttpContext.Current;
            HttpContext.Current = fakeContext;

            var html = new HtmlHelper(
                new ViewContext(fakeControllerContext, new FakeView(),
                    new ViewDataDictionary(), new TempDataDictionary(), memWriter),
                new ViewPage());
            html.RenderPartial(viewName, viewData);
            //Restore context
            HttpContext.Current = oldContext;

            //Flush memory and return output
            memWriter.Flush();
            return sb.ToString();
        }
Exemple #28
0
        public void LoadTest()
        {
            StringBuilder sb = new StringBuilder();
            StringWriter writer = new StringWriter(sb);

            writer.WriteLine("key1=value1");
            writer.WriteLine("key2 = on");
            writer.WriteLine("key3= true");
            writer.Flush();

            MemoryStream stream = new MemoryStream(Encoding.GetEncoding("ISO-8859-1").GetBytes(sb.ToString()));

            DbConfig config = DbConfig.Empty;
            config.Load(stream);

            string value = config.GetValue<string>("key1");
            Assert.IsNotNull(value, "The 'key1' was not set into the config.");
            Assert.IsNotEmpty(value, "The value of 'key1' is empty.");
            Assert.AreEqual("value1", value, "The value for 'key1' is not correct.");

            value = config.GetValue<string>("key2");
            Assert.IsNotNull(value, "The 'key2' was not set into the config.");
            Assert.IsNotEmpty(value, "The value of 'key2' is empty.");
            Assert.AreEqual("on", value, "The value for 'key2' is not correct.");

            value = config.GetValue<string>("key3");
            Assert.IsNotNull(value, "The 'key3' was not set into the config.");
            Assert.IsNotEmpty(value, "The value of 'key3' is empty.");
            Assert.AreEqual("true", value, "The value for 'key1' is not correct.");
        }
    public static string RenderViewToString(this ControllerContext @this, ActionResult actionResult)
    {
        // Create memory writer.
        var sb        = new System.Text.StringBuilder();
        var memWriter = new System.IO.StringWriter(sb);

        // Create fake http context to render the view.
        var fakeResponse = new HttpResponse(memWriter);
        var fakeContext  = new HttpContext(
            HttpContext.Current.Request,
            fakeResponse
            );
        var fakeControllerContext = new ControllerContext(
            new HttpContextWrapper(fakeContext),
            @this.RouteData,
            @this.Controller
            );
        var oldContext = HttpContext.Current;

        HttpContext.Current = fakeContext;

        // Render the view.
        actionResult.ExecuteResult(fakeControllerContext);

        // Restore old context.
        HttpContext.Current = oldContext;

        // Flush memory and return output.
        memWriter.Flush();
        return(sb.ToString());
    }
    public void PerformXmlRoundTrip(string xml)
    {
      var doc = new XmlDocument();

      using (var str = new StringReader(xml))
      using (var reader = XmlReader.Create(str))
      using (var writer = new XmlNodeWriter(doc))
      {
        writer.WriteNode(reader, false);
      }

      var settings = new XmlWriterSettings()
      {
        Indent = true,
        IndentChars = "  ",
        OmitXmlDeclaration = true
      };

      using (var reader = new XmlNodeReader(doc))
      using (var str = new StringWriter())
      using (var writer = XmlWriter.Create(str, settings))
      {
        writer.WriteNode(reader, false);
        writer.Flush();
        str.Flush();
        Assert.AreEqual(xml, str.ToString());
      }
    }
 public static string Decode(string contents)
 {
     if (contents == null)
     {
         throw new ArgumentNullException("contents");
     }
     using (StringWriter writer = new StringWriter())
     {
         using (StringReader reader = new StringReader(contents))
         {
             string str;
             while ((str = reader.ReadLine()) != null)
             {
                 str.TrimEnd(new char[0]);
                 if (str.EndsWith("="))
                 {
                     writer.Write(DecodeLine(str));
                 }
                 else
                 {
                     writer.WriteLine(DecodeLine(str));
                 }
             }
         }
         writer.Flush();
         return writer.ToString();
     }
 }
        private static USPSAddressValidationResponse USPSValidate(USPSAddressValidationRequest request, Policies.USPSPolicy policy)
        {
            var s  = System.Xml.Serialization.XmlSerializer.FromTypes(new Type[] { typeof(USPSAddressValidationRequest), typeof(USPSAddressValidationResponse) });
            var sb = new System.Text.StringBuilder();

            using (var w = new System.IO.StringWriter(sb))
            {
                s[0].Serialize(w, request);
                w.Flush();
            }

            if (!policy.DebugMode)
            {
                //This Code is the 'real' code - commment out the live service call for the bootcamp
                String rawResponse = string.Empty;
                var    url         = new Uri($"{policy.Url}{sb.ToString()}");
                using (var client = new HttpClient())
                {
                    rawResponse = client.GetStringAsync(url).Result;
                }

                if (rawResponse.Contains("<Error>"))
                {
                    var rdr    = XElement.Parse(rawResponse);
                    var errMsg = (from item in rdr.Descendants("Description")
                                  select item.Value).Single();

                    return(null);
                }
                else
                {
                    USPSAddressValidationResponse resp = null;
                    using (var r = XmlReader.Create(new StringReader(rawResponse)))
                    {
                        resp = s[1].Deserialize(r) as USPSAddressValidationResponse;
                    }

                    return(resp);
                }
            }
            else
            {
                USPSAddressValidationResponse resp = new USPSAddressValidationResponse()
                {
                    Address = new USPSAddress()
                    {
                        Id       = "STUB",
                        Address1 = "123 Plugin Lane",
                        Address2 = String.Empty,
                        City     = "Bootcamp",
                        State    = "OH",
                        Zip5     = "43015",
                        Zip4     = "4333"
                    }
                };

                return(resp);
            }
        }
Exemple #33
0
 private string SerializeObject <T>(T o)
 {
     using (var tw = new System.IO.StringWriter())
     {
         Serializer.Serialize(tw, o);
         tw.Flush();
         return(tw.ToString());
     }
 }
    //send a message to all other connected players
    public void SendOthers(CustomEventMessage evnt, string channel = DefaultNetworkOutChannel)
    {
        System.IO.StringWriter strStream = new System.IO.StringWriter();
        xmlSerializer.Serialize(strStream, evnt);
        strStream.Flush();
        strStream.Close();
        string toSend = strStream.GetStringBuilder().ToString();

        networkView.RPC("NetMessage", RPCMode.Others, toSend, channel);
    }
 internal static T ODataGET <T>(string resource, string queryString) where T : IODataResult
 {
     using (var output = new System.IO.StringWriter())
     {
         var pc      = CreatePortalContext(resource, queryString, output);
         var handler = new ODataHandler();
         handler.ProcessRequest(pc.OwnerHttpContext);
         output.Flush();
         return((T)GetResult <T>(output));
     }
 }
        public string Serialize()
        {
            XmlSerializer ser = new XmlSerializer(typeof(Document));

            System.IO.StringWriter s = new System.IO.StringWriter();
            ser.Serialize(s, this);
            s.Flush();
            string xml = s.ToString();

            return(xml);
        }
Exemple #37
0
        public static JToken JsonFromGraph2(IGraph graph, string rootType, JToken context)
        {
            System.IO.StringWriter stringWriter = new System.IO.StringWriter();
            IRdfWriter             rdfWriter    = new JsonLdWriter();

            rdfWriter.Save(graph, stringWriter);
            stringWriter.Flush();

            JToken flattened = JToken.Parse(stringWriter.ToString());

            return(flattened);
        }
Exemple #38
0
        public static string ToXmlString(T obj)
        {
            var serializer = new XmlSerializer(typeof(T));
            var writer     = new System.IO.StringWriter();

            try {
                serializer.Serialize(writer, obj);
            } finally {
                writer.Flush();
                writer.Close();
            }

            return(writer.ToString());
        }
Exemple #39
0
        //private static Assembly GetEntryAssemply()
        //{
        //    return Assembly.GetExecutingAssembly() ?? Assembly.GetCallingAssembly();
        //}

        public override string ToString()
        {
            if (_reportContent == null)
            {
                System.Text.StringBuilder builder = new StringBuilder();
                System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(ErrorReport));
                using (System.IO.TextWriter writer = new System.IO.StringWriter(builder))
                {
                    serializer.Serialize(writer, this);
                    writer.Flush();
                    writer.Close();
                }
                _reportContent = builder.ToString();
            }
            return(_reportContent);
        }
        /// <summary>
        /// Serialize object to an Xml String for use in your code
        /// </summary>
        /// <param name="cryo">T instance to serialize</param>
        /// <returns><see cref="System.String"/> representation of T object</returns>
        public static string ToXmlString(T cryo)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(T));

            System.IO.TextWriter writer = new System.IO.StringWriter();
            try
            {
                serializer.Serialize(writer, cryo);
            }
            finally
            {
                writer.Flush();
                writer.Close();
            }

            return(writer.ToString());
        }
        private static string SerializeRules(object drs)
        {
            System.Text.StringBuilder ruleDefinition = new System.Text.StringBuilder();
            WorkflowMarkupSerializer  serializer     = new WorkflowMarkupSerializer();

            using (System.IO.StringWriter stringWriter = new System.IO.StringWriter(ruleDefinition, System.Globalization.CultureInfo.InvariantCulture))
            {
                using (System.Xml.XmlTextWriter writer = new System.Xml.XmlTextWriter(stringWriter))
                {
                    serializer.Serialize(writer, drs);
                    writer.Flush();
                }
                stringWriter.Flush();
            }

            return(ruleDefinition.ToString());
        }
        /// <summary>
        /// 查询规则(NoSQL)。
        /// </summary>
        /// <param name="condition">规则</param>
        /// <returns></returns>
        public virtual IWhereExpression Query(NoSQL.Condition condition)
        {
            if (condition == null || condition.Type != NoSQL.ConditionTypes.Root || condition.Children.Count == 0)
            {
                return(this);
            }

            if (condition.Children.Count == 0)
            {
                return(this);
            }
            System.Text.StringBuilder builder = new System.Text.StringBuilder();
            using (System.IO.StringWriter writer = new System.IO.StringWriter(builder)) {
                QueryChildren(condition.Children, writer);
                writer.Flush();
            }
            if (builder.Length > 0)
            {
                string commandText = builder.ToString();
lb_Next:
                bool b = false;
                if (!string.IsNullOrEmpty(commandText))
                {
                    if (commandText.StartsWith(" and (", System.StringComparison.OrdinalIgnoreCase))
                    {
                        b           = true;
                        commandText = commandText.Substring(6, commandText.Length - 8);
                    }
                    if (commandText.StartsWith(" or (", System.StringComparison.OrdinalIgnoreCase))
                    {
                        b           = true;
                        commandText = commandText.Substring(5, commandText.Length - 7);
                    }
                    if (b)
                    {
                        goto lb_Next;
                    }
                }
                if (!string.IsNullOrEmpty(commandText))
                {
                    Where(WhereOperators.And, " ( " + commandText + " ) ");
                }
            }
            return(this);
        }
Exemple #43
0
        ///<summary>Renders the designer html for an ASP.NET Control</summary>
        public static string RenderDesignerControl(Control control)
        {
            string height    = "auto";
            string width     = "auto";
            string canResize = "true";
            string canDrop   = "false";
            string id        = control.UniqueID;

            WebControl wc = control as WebControl;

            if (wc != null)
            {
                height = wc.Height.ToString();
                width  = wc.Width.ToString();
            }
            else
            {
                canResize = "false";
            }

            //TODO: is there a better way to make tiny controls appear a decent size?
            if (height == "" || height == "auto")
            {
                height = "20px";
            }
            if (width == "" || width == "auto")
            {
                width = "20px";
            }

            //render the control
            //TODO: use designer, when they're written

            OnPreRenderMethodInfo.Invoke(control, new object[] { EventArgs.Empty });
            System.IO.StringWriter       strWriter = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter writer    = new System.Web.UI.HtmlTextWriter(strWriter);
            control.RenderControl(writer);
            writer.Close();
            strWriter.Flush();
            string content = strWriter.ToString();

            strWriter.Close();

            return(string.Format(ControlSubstituteStructure, id, width, height, canDrop, canResize, content));
        }
 protected void btnImport_Click(object sender, EventArgs e)
 {
     System.IO.StringWriter       tw = new System.IO.StringWriter();
     System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
     Response.Clear();
     Response.Charset         = "gb2312";
     Response.ContentType     = "application/vnd.ms-excel";
     Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
     Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode("其他出库单") + ".xls");
     Response.Write("<html><head><META http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"></head><body>");
     Response.Write(hiddExcel.Value);
     Response.Write(tw.ToString());
     Response.Write("</body></html>");
     Response.End();
     hw.Close();
     hw.Flush();
     tw.Close();
     tw.Flush();
 }
Exemple #45
0
        public static JObject JsonFromGraph(IGraph graph, string rootType, JToken context)
        {
            System.IO.StringWriter stringWriter = new System.IO.StringWriter();
            IRdfWriter             rdfWriter    = new JsonLdWriter();

            rdfWriter.Save(graph, stringWriter);
            stringWriter.Flush();

            JObject frame = new JObject();

            frame.Add("@context", context);
            frame.Add("@type", rootType);
            //frame.Add("@embed", false);

            JToken  flattened = JToken.Parse(stringWriter.ToString());
            JObject framed    = JsonLdProcessor.Frame(flattened, frame, new JsonLdOptions());
            JObject compacted = JsonLdProcessor.Compact(framed, context, new JsonLdOptions());

            return(compacted);
        }
Exemple #46
0
    /// <summary>
    /// 导出EXCEL方法
    /// </summary>
    /// <param name="page"></param>
    /// <param name="fileName"></param>
    /// <param name="html"></param>
    protected void ExportDsToXls(Page page, string fileName, string html)
    {
        System.IO.StringWriter       tw = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
        Response.Clear();
        Response.Charset         = "gb2312";
        Response.ContentType     = "application/vnd.ms-excel";
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
        Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName) + ".xls");
        Response.Write("<html><head><META http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"></head><body>");

        Response.Write(html);

        Response.Write(tw.ToString());
        Response.Write("</body></html>");
        Response.End();
        hw.Close();
        hw.Flush();
        tw.Close();
        tw.Flush();
    }
        public static string CreateJson(IGraph graph, JToken frame = null)
        {
            System.IO.StringWriter writer    = new System.IO.StringWriter();
            IRdfWriter             rdfWriter = new JsonLdWriter();

            rdfWriter.Save(graph, writer);
            writer.Flush();

            if (frame == null)
            {
                return(writer.ToString());
            }
            else
            {
                JToken  flattened = JToken.Parse(writer.ToString());
                JObject framed    = JsonLdProcessor.Frame(flattened, frame, new JsonLdOptions());
                JObject compacted = JsonLdProcessor.Compact(framed, frame["@context"], new JsonLdOptions());

                return(compacted.ToString());
            }
        }
        private static USPSAddressValidationResponse USPSValidate(USPSAddressValidationRequest request, Policies.USPSPolicy policy)
        {
            var s  = System.Xml.Serialization.XmlSerializer.FromTypes(new Type[] { typeof(USPSAddressValidationRequest), typeof(USPSAddressValidationResponse) });
            var sb = new System.Text.StringBuilder();

            using (var w = new System.IO.StringWriter(sb))
            {
                s[0].Serialize(w, request);
                w.Flush();
            }

            String rawResponse = string.Empty;
            var    url         = new Uri($"{policy.Url}{sb.ToString()}"); //TODO: Externalize

            using (var client = new HttpClient())
            {
                rawResponse = client.GetStringAsync(url).Result;
            }

            if (rawResponse.Contains("<Error>"))
            {
                var rdr    = XElement.Parse(rawResponse);
                var errMsg = (from item in rdr.Descendants("Description")
                              select item.Value).Single();

                return(null);
            }
            else
            {
                USPSAddressValidationResponse resp = null;
                using (var r = XmlReader.Create(new StringReader(rawResponse)))
                {
                    resp = s[1].Deserialize(r) as USPSAddressValidationResponse;
                }

                return(resp);
            }
        }
Exemple #49
0
    public void Test_010_StringDictionary()
    {
        StringDictionary dictionary = new StringDictionary();

        dictionary["abc"] = "123";
        dictionary["def"] = "456";
        dictionary["ghi"] = "789";

        // Serialize to string.
        StringBuilder sb = new StringBuilder();

        using (System.IO.StringWriter writer = new System.IO.StringWriter(sb))
        {
            XmlSerializer serializer = new XmlSerializer(typeof(StringDictionary));
            serializer.Serialize(writer, dictionary);
            writer.Flush();
            writer.Close();
        }
        string xml = sb.ToString();

        // Deserialize from string.
        StringDictionary dictionary2 = null;

        using (System.IO.StringReader reader = new System.IO.StringReader(xml))
        {
            XmlSerializer serializer = new XmlSerializer(typeof(StringDictionary));
            dictionary2 = (StringDictionary)serializer.Deserialize(reader);
        }

        // Test.
        foreach (string key in dictionary.Keys)
        {
            Assert.AreEqual(dictionary[key], dictionary2[key]);
        }

        return;
    }
Exemple #50
0
        public ActionResult ImportData()
        {
            var    r             = new List <UploadFilesResult>();
            string savedFileName = string.Empty;
            string fileExtension = string.Empty;

            foreach (string file in Request.Files)
            {
                HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
                if (hpf.ContentLength == 0)
                {
                    continue;
                }

                savedFileName = Path.Combine(Server.MapPath("~/CRMFiles"), Path.GetFileName(DateTime.Now.Millisecond + hpf.FileName));
                fileExtension = System.IO.Path.GetExtension(hpf.FileName);
                hpf.SaveAs(savedFileName);

                r.Add(new UploadFilesResult()
                {
                    Name   = hpf.FileName,
                    Length = hpf.ContentLength,
                    Type   = hpf.ContentType
                });
            }

            if (r[0].Length > 0)
            {
                try
                {
                    DataContext context = new DataContext();

                    if (fileExtension == ".xls" || fileExtension == ".xlsx")
                    {
                        ExcelParser excelObj;

                        excelObj = new ExcelParser();
                        DataTable dt1 = new DataTable("ReturnTable");// = excelObj.ExcelContent(filename, true,"");


                        string SheetName   = "Account";
                        string AgainstType = "contact";


                        DataSet dsXmlFields = excelObj.XmlColumnDefSynonym(AgainstType, ConfigurationManager.ConnectionStrings["ConRenderLogyNew"].ToString(), Server.MapPath("~/CRMFiles/"));
                        if (dsXmlFields.Tables.Count > 1)
                        {
                            DataTable dtExcel = excelObj.ExcelColumnDef(savedFileName, true, SheetName);
                            if (dtExcel.Rows.Count > 0)
                            {
                                var queryRes = (from cs in dsXmlFields.Tables["Name"].AsEnumerable()
                                                join cs1 in dsXmlFields.Tables["Synonyms"].AsEnumerable() on cs["Field_Id"].ToString().ToLower().Trim() equals cs1["Field_Id"].ToString().ToLower().Trim()
                                                join cs2 in dsXmlFields.Tables["Synonym"].AsEnumerable() on cs1["Synonyms_Id"].ToString().ToLower().Trim() equals cs2["Synonyms_Id"].ToString().ToLower().Trim()
                                                join c in dtExcel.AsEnumerable() on cs["Name_Text"].ToString().ToLower().Trim() equals c["COLUMN_NAME"].ToString().ToLower().Trim()
                                                orderby Convert.ToInt32(cs["ColumnOrder"].ToString())
                                                select cs["Name_Text"]).Distinct().ToList();
                                dt1 = excelObj.GetSpecificColumnsValue(savedFileName, true, SheetName, queryRes, "");
                            }
                        }
                        using (System.IO.StringWriter writer = new System.IO.StringWriter())
                        {
                            dt1.WriteXml(writer, XmlWriteMode.WriteSchema, false);
                            StringBuilder getdata = new StringBuilder();
                            getdata.Append(writer);
                            writer.Close();
                            writer.Flush();
                            writer.Close();

                            var connectionString = ConfigurationManager.ConnectionStrings["ConRenderLogyNew"].ConnectionString;

                            using (var connection = new SqlConnection(connectionString))
                            {
                                var command = new SqlCommand("sp_SaveAccountXML", connection);
                                command.CommandType = CommandType.StoredProcedure;
                                command.Parameters.AddWithValue("@AccountDetailsXML", getdata.ToString());
                                command.Parameters.AddWithValue("@UserId", Session["UserId"]);
                                connection.Open();

                                command.ExecuteNonQuery();

                                connection.Close();
                            }
                        }
                    }
                    else
                    {
                        if (System.IO.File.Exists(savedFileName))
                        {
                            System.IO.File.Delete(savedFileName);
                        }
                        ModelState.AddModelError("", "Invalid file");
                    }
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", ex.Message);
                }
                finally
                {
                    if (System.IO.File.Exists(savedFileName))
                    {
                        System.IO.File.Delete(savedFileName);
                    }
                }
            }
            return(RedirectToAction("Index", "CRM"));
        }
Exemple #51
0
        public static void ToTxtFile(System.Web.UI.WebControls.DataGrid DataGrid2Txt, string FileName, string ColumnIDs, bool AddID, int POSysNo)
        {
            HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; filename=" + FileName + ".txt");             //filename=Report.xls
            HttpContext.Current.Response.Charset         = "GB2312";
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            HttpContext.Current.Response.ContentType     = "application/vnd.ms-txt";

            System.IO.StringWriter tw = new System.IO.StringWriter();

            string[] Columns = ColumnIDs.Split(';');

            string sLine = "";

            if (AddID)
            {
                sLine = "\"ID\",";
            }
            for (int i = 0; i < Columns.Length; i++)
            {
                sLine += "\"" + DataGrid2Txt.Columns[Int32.Parse(Columns[i])].HeaderText + "\",";
            }
            sLine = sLine.Substring(0, sLine.Length - 1);

            tw.WriteLine(sLine);

            foreach (System.Web.UI.WebControls.DataGridItem item in DataGrid2Txt.Items)
            {
                if (AddID)
                {
                    sLine = "\"" + Convert.ToString(item.ItemIndex + 1) + "\",";
                }
                else
                {
                    sLine = "";
                }
                for (int i = 0; i < Columns.Length; i++)
                {
                    if (item.Cells[Int32.Parse(Columns[i])].Text.Trim().Length > 0)
                    {
                        sLine += "\"" + item.Cells[Int32.Parse(Columns[i])].Text.Trim().Replace("&nbsp;", "");
                        //用于在商品编号后面增加下划线和采购单号
                        if (i == 0)
                        {
                            sLine += "_" + POSysNo.ToString();
                        }
                        sLine += "\",";
                    }
                    else
                    {
                        sLine += "\"\",";
                    }
                }
                sLine = sLine.Substring(0, sLine.Length - 1);

                tw.WriteLine(sLine);
            }

            tw.Flush();
            tw.Close();
            HttpContext.Current.Response.Write(tw.ToString());             //Write the HTML back to the browser.
            HttpContext.Current.Response.End();
        }
        private void SimulateGameButtonClick(object sender, RoutedEventArgs e)
        {
            if (!CanSimulateStrategies())
            {
                return;
            }

            var uiScheduler = System.Threading.Tasks.TaskScheduler.FromCurrentSynchronizationContext();

            Dominion.Strategy.Description.StrategyDescription player1Descr = this.appDataContext.player1Strategy.ConvertToDominionStrategy();
            Dominion.Strategy.Description.StrategyDescription player2Descr = this.appDataContext.player2Strategy.ConvertToDominionStrategy();

            System.Threading.Tasks.Task <StrategyUIResults> .Factory.StartNew(() =>
            {
                string player1nameAppend, player2nameAppend;
                GetStrategyNames(player1Descr, player2Descr, out player1nameAppend, out player2nameAppend);

                string player1Name = "Player 1: " + player1nameAppend;
                string player2Name = "Player 2: " + player2nameAppend;

                var playerActions = new Dominion.Strategy.PlayerAction[]
                {
                    player1Descr.ToPlayerAction(player1Name),
                    player2Descr.ToPlayerAction(player2Name)
                };

                var builder = new Dominion.GameConfigBuilder();
                Dominion.Strategy.PlayerAction.SetKingdomCards(builder, playerActions[0], playerActions[1]);

                builder.useColonyAndPlatinum = false;
                builder.useShelters          = false;
                builder.CardSplit            = Dominion.StartingCardSplit.Split43;

                bool rotateWhoStartsFirst = true;
                int numberOfGames         = 1000;

                Dominion.GameConfig gameConfig = builder.ToGameConfig();
                var strategyComparison         = new Dominion.Data.StrategyComparison(playerActions, gameConfig, rotateWhoStartsFirst, numberOfGames);

                Dominion.Data.StrategyComparisonResults strategyComparisonResults = strategyComparison.ComparePlayers();

                var htmlGenerator = new HtmlRenderer.HtmlReportGenerator(strategyComparisonResults);

                var stringWriter = new System.IO.StringWriter();
                var textWriter   = new Dominion.IndentedTextWriter(stringWriter);

                htmlGenerator.CreateHtmlReport(textWriter);
                stringWriter.Flush();
                string resultHtml = stringWriter.GetStringBuilder().ToString();
                return(new StrategyUIResults()
                {
                    StrategyReport = resultHtml,
                    Player1Name = player1Name,
                    Player2Name = player2Name,
                    Player1WinPercent = strategyComparisonResults.PlayerWinPercent(0),
                    Player2WinPercent = strategyComparisonResults.PlayerWinPercent(1),
                    TiePercent = strategyComparisonResults.TiePercent,
                });
            }).ContinueWith(async(continuation) =>
            {
                var results = (StrategyUIResults )continuation.Result;

                this.appDataContext.StrategyReport.Value           = results.StrategyReport;
                this.appDataContext.Player1Name.Value              = results.Player1Name;
                this.appDataContext.Player2Name.Value              = results.Player2Name;
                this.appDataContext.Player1WinPercent.Value        = results.Player1WinPercent;
                this.appDataContext.Player2WinPercent.Value        = results.Player2WinPercent;
                this.appDataContext.TiePercent.Value               = results.TiePercent;
                this.appDataContext.StrategyResultsAvailable.Value = true;
            }, uiScheduler);
        }