コード例 #1
0
        public static string CorrectStoragePath(string content, int tenant)
        {
            if (string.IsNullOrWhiteSpace(content))
            {
                return(content);
            }
            var tenantPath = "/" + TennantPath.CreatePath(tenant.ToString()) + "/";

            return(regex.Replace(content, (m) => m.Success ? m.Groups["start"] + tenantPath : string.Empty));
        }
コード例 #2
0
        internal void ClearDataStoreCache()
        {
            var tenantId = TenantManager.GetCurrentTenant().TenantId.ToString();
            var path     = TennantPath.CreatePath(tenantId);

            foreach (var module in StorageFactoryConfig.GetModuleList("", true))
            {
                Cache.Publish(new DataStoreCacheItem()
                {
                    TenantId = path, Module = module
                }, CacheNotifyAction.Remove);
            }
        }
コード例 #3
0
        public override Stream PrepareData(string key, Stream stream, ColumnMapper columnMapper)
        {
            if (!key.EndsWith("body.html"))
            {
                return(stream);
            }

            using (var streamReader = new StreamReader(stream, Encoding.UTF8, true, 1024, true))
            {
                var data = streamReader.ReadToEnd();
                data = Regex.Replace(data, @"(htmleditorfiles|aggregator)(\/0\/|\/[\d]+\/\d\d\/\d\d\/)([-\w]+(?=/))",
                                     match => "/" + TennantPath.CreatePath(columnMapper.GetTenantMapping().ToString()) + "/" + columnMapper.GetUserMapping(match.Groups[3].Value));

                var content = Encoding.UTF8.GetBytes(data);

                stream.Position = 0;
                stream.Write(content, 0, content.Length);
            }

            return(stream);
        }