BetterCms.Module.Pages.Services.DefaultRedirectService.ValidateForCircularLoop C# (CSharp) Method

ValidateForCircularLoop() public method

Validates urls: checks if the the circular loop exists.
public ValidateForCircularLoop ( string pageUrl, string redirectUrl, System.Guid id = null ) : void
pageUrl string The page URL.
redirectUrl string The redirect URL.
id System.Guid The id.
return void
        public void ValidateForCircularLoop(string pageUrl, string redirectUrl, Guid? id = null)
        {
            var redirects = GetAllRedirects();
            if (id.HasValue && !id.Value.HasDefaultValue())
            {
                redirects.Where(r => r.Id == id.Value).ForEach(r =>
                    {
                        r.PageUrl = pageUrl;
                        r.RedirectUrl = redirectUrl;
                    });
            }
            else
            {
                id = Guid.NewGuid();
                redirects.Add(new Redirect
                    {
                        Id = Guid.NewGuid(),
                        PageUrl = pageUrl,
                        RedirectUrl = redirectUrl
                    });
            }
            var checkedIds = new List<Guid> { id.Value };
            RecursiveCircularLoop(redirects, redirectUrl, checkedIds, pageUrl, redirectUrl);
        }