Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Insert an alias to the page
- CustomAliasInfo InsertAlias(TreeNode page, string AliasURLPath, string AliasCulture)
- {
- AliasCulture = AliasCulture == null ? "" : AliasCulture;
- if (!string.IsNullOrEmpty(AliasURLPath))
- {
- string AliasExtensions = "";
- if (AliasURLPath.Contains("."))
- {
- var aliasSplit = AliasURLPath.Split('.').ToList();
- AliasExtensions = "." + aliasSplit[aliasSplit.Count - 1];
- aliasSplit.RemoveAt(aliasSplit.Count - 1);
- AliasURLPath = aliasSplit.Join(".");
- }
- var res = new CustomAliasInfo()
- {
- AliasURL = AliasURLPath,
- };
- if (page == null)
- {
- res.Status = "page_not_found";
- return res;
- }
- else
- {
- res.PagePath = page.AbsoluteURL;
- }
- var current_Alias = GetAliasInfo(AliasURLPath, page.NodeID, AliasExtensions, AliasCulture);
- if (current_Alias != null)
- {
- res.Status = "existed";
- res.Alias = current_Alias;
- EventLogProvider.LogInformation("current_Alias", current_Alias.AliasURLPath, JsonConvert.SerializeObject(new
- {
- Properties = current_Alias.Properties,
- ColumnNames = current_Alias.ColumnNames,
- AssignedSites = current_Alias.AssignedSites,
- Bindings = current_Alias.Bindings,
- AllowPartialUpdate = current_Alias.AllowPartialUpdate,
- IsGlobal = current_Alias.IsGlobal,
- }));
- return res;
- }
- else
- {
- DocumentAliasInfo newAlias = new DocumentAliasInfo() {
- AliasURLPath = AliasURLPath,
- AliasNodeID = page.NodeID,
- AliasCulture = AliasCulture,
- AliasSiteID = SiteContext.CurrentSiteID,
- AliasExtensions = AliasExtensions,
- AliasActionMode = AliasActionModeEnum.UseSiteSettings,
- AliasPriority = 1,
- AliasWildcardRule = null,
- };
- var existAlias = GetAliasInfo(AliasURLPath, page.NodeID, AliasExtensions, AliasCulture);
- if (existAlias == null)
- {
- DocumentAliasInfoProvider.SetDocumentAliasInfo(newAlias);
- res.Status = "new";
- }
- else
- {
- res.Status = "existed";
- }
- res.Alias = newAlias;
- return res;
- }
- }
- return null;
- }
- // Get alias
- DocumentAliasInfo GetAliasInfo(string AliasURLPath, int NodeID, string AliasExtensions, string AliasCulture)
- {
- return DocumentAliasInfoProvider.GetDocumentAliasesWithNodesDataQuery()
- .WhereEquals("AliasURLPath", AliasURLPath)
- .WhereEquals("AliasNodeID", NodeID)
- .WhereEqualsOrNull("AliasExtensions", AliasExtensions)
- .WhereEqualsOrNull("AliasActionMode", AliasActionModeEnum.UseSiteSettings)
- .WhereEqualsOrNull("AliasCulture", AliasCulture)
- .WhereEquals("AliasSiteID", SiteContext.CurrentSiteID)
- .FirstObject;
- }
- // Result format
- public partial class CustomAliasInfo
- {
- public DocumentAliasInfo Alias { get; set; }
- public string Status { get; set; }
- public string PagePath { get; set; }
- public string AliasURL { get; set; }
- public string Language { get; set; }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement