Advertisement
thebossnt

kentico - insert alias example

Jun 4th, 2019
350
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.81 KB | None | 0 0
  1. // Insert an alias to the page
  2. CustomAliasInfo InsertAlias(TreeNode page, string AliasURLPath, string AliasCulture)
  3.     {
  4.         AliasCulture = AliasCulture == null ? "" : AliasCulture;
  5.         if (!string.IsNullOrEmpty(AliasURLPath))
  6.         {
  7.             string AliasExtensions = "";
  8.             if (AliasURLPath.Contains("."))
  9.             {
  10.                 var aliasSplit = AliasURLPath.Split('.').ToList();
  11.                 AliasExtensions = "." + aliasSplit[aliasSplit.Count - 1];
  12.                 aliasSplit.RemoveAt(aliasSplit.Count - 1);
  13.                 AliasURLPath = aliasSplit.Join(".");
  14.             }
  15.  
  16.             var res = new CustomAliasInfo()
  17.             {
  18.                 AliasURL = AliasURLPath,
  19.             };
  20.             if (page == null)
  21.             {
  22.                 res.Status = "page_not_found";
  23.                 return res;
  24.             }
  25.             else
  26.             {
  27.                 res.PagePath = page.AbsoluteURL;
  28.             }
  29.  
  30.             var current_Alias = GetAliasInfo(AliasURLPath, page.NodeID, AliasExtensions, AliasCulture);
  31.  
  32.             if (current_Alias != null)
  33.             {
  34.                 res.Status = "existed";
  35.                 res.Alias = current_Alias;
  36.  
  37.                 EventLogProvider.LogInformation("current_Alias", current_Alias.AliasURLPath, JsonConvert.SerializeObject(new
  38.                 {
  39.                     Properties = current_Alias.Properties,
  40.                     ColumnNames = current_Alias.ColumnNames,
  41.                     AssignedSites = current_Alias.AssignedSites,
  42.                     Bindings = current_Alias.Bindings,
  43.                     AllowPartialUpdate = current_Alias.AllowPartialUpdate,
  44.                     IsGlobal = current_Alias.IsGlobal,
  45.                 }));
  46.  
  47.                 return res;
  48.             }
  49.             else
  50.             {
  51.                 DocumentAliasInfo newAlias = new DocumentAliasInfo() {
  52.                     AliasURLPath = AliasURLPath,
  53.                     AliasNodeID = page.NodeID,
  54.                     AliasCulture = AliasCulture,
  55.                     AliasSiteID = SiteContext.CurrentSiteID,
  56.                     AliasExtensions = AliasExtensions,
  57.                     AliasActionMode = AliasActionModeEnum.UseSiteSettings,
  58.                     AliasPriority = 1,
  59.                     AliasWildcardRule = null,
  60.                 };
  61.  
  62.                 var existAlias = GetAliasInfo(AliasURLPath, page.NodeID, AliasExtensions, AliasCulture);
  63.                 if (existAlias == null)
  64.                 {
  65.                     DocumentAliasInfoProvider.SetDocumentAliasInfo(newAlias);
  66.  
  67.                     res.Status = "new";
  68.                 }
  69.                 else
  70.                 {
  71.                     res.Status = "existed";
  72.                 }
  73.  
  74.                 res.Alias = newAlias;
  75.                 return res;
  76.             }
  77.  
  78.         }
  79.         return null;
  80.     }
  81.  
  82. // Get alias
  83. DocumentAliasInfo GetAliasInfo(string AliasURLPath, int NodeID, string AliasExtensions, string AliasCulture)
  84.     {
  85.         return DocumentAliasInfoProvider.GetDocumentAliasesWithNodesDataQuery()
  86.                   .WhereEquals("AliasURLPath", AliasURLPath)
  87.                   .WhereEquals("AliasNodeID", NodeID)
  88.                   .WhereEqualsOrNull("AliasExtensions", AliasExtensions)
  89.                   .WhereEqualsOrNull("AliasActionMode", AliasActionModeEnum.UseSiteSettings)
  90.                   .WhereEqualsOrNull("AliasCulture", AliasCulture)
  91.                   .WhereEquals("AliasSiteID", SiteContext.CurrentSiteID)
  92.                   .FirstObject;
  93.     }
  94.  
  95.  
  96. // Result format
  97. public partial class CustomAliasInfo
  98.     {
  99.         public DocumentAliasInfo Alias { get; set; }
  100.         public string Status { get; set; }
  101.         public string PagePath { get; set; }
  102.         public string AliasURL { get; set; }
  103.         public string Language { get; set; }
  104.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement