private void StartThreading(string xmlData) { var gNewOrderNotification = GoogleCheckout.DecodeRequest(xmlData, typeof(NewOrderNotification)) as NewOrderNotification; var CustomerInfo = gNewOrderNotification.shoppingcart.merchantprivatedata.Any[0]; var customerGuid = new Guid(CustomerInfo.Attributes["ContactGuid"].Value); var paramWrapper = new ParamWrapper() { CurrentContext = HttpContext.Current, ID = customerGuid, XmlData = xmlData, XmlCustomerInfo = CustomerInfo }; GcThreadProcessor.ThreadStart(ProcessNewOrderNotification, paramWrapper); }
static void Main(string[] args) { var wapper = new ParamWrapper(args); var ins = wapper.GetCommand("in").Select(p => p.IndexOf(":") >= 0 ? p : Path.Combine(Environment.CurrentDirectory, p)).ToList(); var outs = wapper.GetCommand("out").Select(p => p.IndexOf(":") >= 0 ? p : Path.Combine(Environment.CurrentDirectory, p)).ToList(); if (ins.Count == 0) { ErrorAndExit("error: in empty"); } if (outs.Count == 0) { ErrorAndExit("error: out empty"); } try { var outPath = outs.First(); BasicParser.Initialize(); var assemblys = new List <AssemblyBuilder>(); foreach (var @in in ins) { Console.WriteLine("正在编译:{0}", @in); using (var reader = new TokenReader(new StreamReader(File.OpenRead(@in), Encoding.UTF8))) { var lexer = new Tokenizer(reader); var assembly = BasicParser.Parse(lexer); assembly.AddReference(typeof(Framework.Runtime.Serialization.Protobuf.IMessage).Namespace); var sb = new StringBuilder(); assembly.BuildCode(sb); var script = sb.ToString(); var name = Path.GetFileNameWithoutExtension(@in); var path = Path.Combine(outPath, name + ".cs"); File.WriteAllText(path, script, Encoding.UTF8); } } } catch (Exception ex) { ErrorAndExit(ex.ToString()); } }
public async Task TestParamWrapperMeta() { var gitHubApi = ClientFactory.Create(async req => { var request = await req.Content.ReadAsStringAsync().ConfigureAwait(false); Assert.DoesNotContain("meta", request, System.StringComparison.Ordinal); var response = new HttpResponseMessage(); response.Content = new StringContent(@"{""meta"": {""next_id"": ""123"", ""next_page"": ""/api/uri?with_params=5""}, ""data"": null}", Encoding.UTF8, "application/json"); return(response); }); var pw = new ParamWrapper <CreateConnectSessionRequest> { data = new CreateConnectSessionRequest(), }; var res = await gitHubApi.CreateConnectSessionCall(pw).ConfigureAwait(false); Assert.Null(res.data); Assert.NotNull(res.meta); Assert.Equal("123", res.meta.next_id); Assert.Equal("/api/uri?with_params=5", res.meta.next_page.ToString()); }