public void TestCompositeExecuteCustomRuleOnType2()
        {
            string        payloadTemplate = @"{ '$source':'data1', '$id':'jpath:{$.id}' }";
            XjsltTemplate template        = GetProvider(payloadTemplate,
                                                        ("data1", new DataClass())
                                                        );

            string        payloadSource = @"{ 'Event':'e1', 'id':'FR345' }";
            StringBuilder sb2           = new StringBuilder(payloadSource.Replace('\'', '"'));

            var result = template.Transform(sb2);

            Assert.AreEqual(result.Item1["Uuid"], "FR345");
        }
        public void TestCompositeExecuteCustomRule()
        {
            string        payloadTemplate = @"{ 'prices': 'jpath:{$..n} | sum:{}' }";
            XjsltTemplate template        = GetProvider(payloadTemplate,
                                                        ("sum", new ServiceSum())
                                                        );

            string        payloadSource = @"{ 'prices': [{'n' : 1}, {'n' : 2}, {'n' : 3}] }";
            StringBuilder sb2           = new StringBuilder(payloadSource.Replace('\'', '"'));

            var result = template.Transform(sb2);

            Assert.AreEqual(result.Item1["prices"], 6);
        }
        private int _Type = 1; // 1 == AddOn


        public List <SkuGroup> ExecuteList(bool useCache = true)
        {
            Provider provider = new GetProvider()
            {
                Id = this.ProviderId
            }.ExecuteItem(useCache);

            List <SkuGroup> result = provider.SkuGroupCollection.ToList().FindAll(x => x.Type == this.Type && x.SkuGroupSkuCollection.ToList().Any(y => y.SkuId == this.SkuId && y.Type == 0)).ToList();

            return(result);
        }
        private int _Type = 1; // 1 == AddOn


        public List <SkuGroupSku> ExecuteList(bool useCache = true)
        {
            Provider provider = new GetProvider()
            {
                Id = this.ProviderId
            }.ExecuteItem(useCache);

            List <SkuGroupSku> result = provider.SkuGroupCollection.ToList().Find(x => x.Id == this.SkuGroupId).SkuGroupSkuCollection.ToList().FindAll(x => x.Type == this.Type);

            result.Sort((x, y) => x.Sku.Name.CompareTo(y.Sku.Name));
            return(result);
        }
Ejemplo n.º 5
0
        public List <Resource> ExecuteList(bool useCache = true)
        {
            Provider provider = new GetProvider()
            {
                Id = this.ProviderId
            }.ExecuteItem(useCache);

            if (provider == null)
            {
                return(new List <Resource>());
            }

            return(provider
                   .ResourceCollection
                   .OrderBy(x => x.ShortDescription)
                   .ToList());
        }
Ejemplo n.º 6
0
        public static void ProviderCallback(string key, object value, CacheItemRemovedReason reason)
        {
            // Step 1. Exit if no httpContext
            HttpContext httpContext = HttpContext.Current;

            if (httpContext == null)
            {
                return;
            }

            // Step 2. Get ProviderId
            Guid providerId = key.GetProviderId();

            // Step 3. Exit
            if (reason == CacheItemRemovedReason.Removed)
            {
                return;
            }

            // Step 4. IsLastAccessCurrent
            if (!IsLastAccessCurrent("Provider", providerId))
            {
                return;
            }

            // Step 5. Get Provider
            Provider provider = new GetProvider()
            {
                Id = providerId
            }.ExecuteItemCore();

            if (provider == null)
            {
                throw new InvalidOperationException("Provider not found.");
            }

            // Step 6. Insert Cache
            CacheDependency cacheDependency    = null;
            DateTime?       absoluteExpiration = Cache.NoAbsoluteExpiration;
            TimeSpan        slidingExpiration  = Cache.NoSlidingExpiration;

            httpContext.Cache.Insert(key, value, cacheDependency, (DateTime)absoluteExpiration, (TimeSpan)slidingExpiration, CacheItemPriority.Default, ProviderCallback);
        }
Ejemplo n.º 7
0
        private int _Type = 1; // 1 == AddOn


        public List <Sku> ExecuteList(bool useCache = true)
        {
            Provider provider = new GetProvider()
            {
                Id = this.ProviderId
            }.ExecuteItem(useCache);

            List <SkuGroup> skuGroupList = provider.SkuGroupCollection.ToList().FindAll(x => x.Type == this.Type && x.SkuGroupSkuCollection.ToList().Any(y => y.SkuId == this.SkuId && y.Type == 0)).ToList();

            if (skuGroupList.Count > 0)
            {
                var skuGroup                = skuGroupList.First();
                var skuGroupSkuList         = skuGroup.SkuGroupSkuCollection.ToList();
                var filteredSkuGroupSkuList = skuGroupSkuList.FindAll(x => x.Type == 1);
                var skuList = filteredSkuGroupSkuList.ConvertAll(x => x.Sku);

                return(skuList);
            }

            return(new List <Sku>());
        }
Ejemplo n.º 8
0
        public static void ProcessProviderAction(CacheBehavior cacheBehavior, CacheAction cacheAction)
        {
            // Step 1. Get cache key
            string cacheKey = cacheBehavior.GetCacheKey(cacheAction.Item);

            // Step 2. Get cache value
            CacheItemContainer <Provider> providerContainer = CacheHelper2.GetCacheValue <CacheItemContainer <Provider> >(cacheKey);

            if (providerContainer == null)
            {
                return;
            }

            // Step 3. Refresh
            Provider provider = new GetProvider()
            {
                Id = providerContainer.Item.Id
            }.ExecuteItem(false);

            providerContainer.Item = provider;
        }
Ejemplo n.º 9
0
        private int _Type = 1; // 1 == AddOn


        public List <Sku> ExecuteList(bool useCache = true)
        {
            Provider provider = new GetProvider()
            {
                Id = this.ProviderId
            }.ExecuteItem(useCache);

            if (this.SkuId != null)
            {
                List <SkuGroup> realtedSkuList = provider.SkuGroupCollection.ToList().FindAll(x => x.Type == this.Type && x.SkuGroupSkuCollection.ToList().Any(y => y.SkuId == this.SkuId && y.Type == 0)).ToList();
                SkuGroup        skuGroup       = realtedSkuList.Find(x => x.Type == 1);
                if (skuGroup == null)
                {
                    return(new List <Sku>());
                }

                return(skuGroup.SkuGroupSkuCollection.ToList().FindAll(x => x.Type == 1).ConvertAll(x => x.Sku));
            }
            else
            {
                return(provider.SkuCollection.ToList().FindAll(x => x.IsPrimary && x.SkuCategoryId == this.SkuCategoryId));
            }
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 执行源代码
        /// 类必须命名为 CSharpExecutor.Executor 且具有方法 public Execute(string[] list)
        /// </summary>
        /// <param name="source">源代码</param>
        /// <param name="reference">引用程序集, eg. System.Xml</param>
        /// <param name="list">参数</param>
        public static string RunFromSrc(string source, string[] reference, string[] args)
        {
            CompilerResults compilerResults = GetProvider.CompileAssemblyFromSource(GetCompileParam(reference), source);

            return(Run(compilerResults, args));
        }