Пример #1
0
        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);
        }
Пример #2
0
        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());
        }