SiteNavigation.cs 1.1 KB

1234567891011121314151617181920212223242526272829
  1. using CZFW.Core;
  2. using CZFW.Framework.Tools;
  3. using CZFW.MDB.Util;
  4. using Newtonsoft.Json.Linq;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Text;
  8. namespace CZFW.MDB
  9. {
  10. public class SiteNavigation
  11. {
  12. public static dynamic GetNavigation(string siteName, string navId, string tplName, string lang=null)
  13. {
  14. if (string.IsNullOrWhiteSpace(lang))
  15. lang = SysConfig.DefaultLanguage();
  16. if (!CacheHelper.TryRead(Constants.NAVIGATION_CACHE_PREFIX+navId+lang, out JObject data))
  17. {
  18. IMongoRepository mongoRepository = new MongoRepository($"{tplName}_{Constants.NAVIGATION_TABLE_NAME}");
  19. var bsonElement = mongoRepository.Get(navId);
  20. var json = bsonElement.CZToJson();
  21. data = JObject.Parse(json);
  22. CacheHelper.WriteCache(siteName ,$"{Constants.NAVIGATION_CACHE_PREFIX}{navId}{lang}", data, TimeSpan.FromMinutes(ConfigHelper.GetValue<int>("SiteCacheExpireMinutes")));
  23. }
  24. return data;
  25. }
  26. }
  27. }