Friday, May 17, 2019

EPiServer - Set Root Page Restrictions


 [InitializableModule]
    [ModuleDependency(typeof(EPiServer.Web.InitializationModule))]
    public class RootPageRestrictions : IInitializableModule
    {
        public void Initialize(InitializationEngine context)
        {
            var typeRepo = ServiceLocator.Current.GetInstance<IContentTypeRepository>();
            var sysRoot = typeRepo.Load("SysRoot") as PageType;


            var setting = new AvailableSetting {Availability = Availability.Specific};
            setting.AllowedContentTypeNames.Add(startPage.Name);
            setting.AllowedContentTypeNames.Add(settingsPage.Name);
            var availabilityRepository = ServiceLocator.Current.GetInstance<IAvailableSettingsRepository>();
            availabilityRepository.RegisterSetting(sysRoot, setting);

        }

        public void Preload(string[] parameters) { }

        public void Uninitialize(InitializationEngine context)
        {
            //Add uninitialization logic
        }
    }

Thursday, May 16, 2019

CMD - Simple Find duplicated keys in XML file


 class XmlDuplicateCleaner
    {
        static void Main(string[] args)
        {
            Console.WriteLine("In what node should we search for duplicates?");
            var nodeToLookFor  = Console.ReadLine();
            Console.WriteLine("Provide filename for the file we should search");
            var filnamn = Console.ReadLine();
             var xmlDoc =  XDocument.Load(String.IsNullOrEmpty(filnamn) ? "xmlfile.xml" : filnamn);

             if (xmlDoc.Root != null)
             {
                 var grouped = xmlDoc.Root.Elements().Descendants(nodeToLookFor);
                 List<string> resultList = grouped.Select(groupItem => groupItem.Value).ToList();

                 var duplicateKeys = resultList.GroupBy(x => x)
                     .Where(group => @group.Count() > 1)
                     .Select(group => @group.Key);
                 foreach (var duplicateKey in duplicateKeys)
                 {
                     Console.WriteLine(duplicateKey);
                 }
             }

             Console.ReadLine();
        }
    }

Wednesday, May 8, 2019

CMD, GIT - Push Simple files to repository

1. Git init
2. Git Add *
3. Git commit -m "Added jadda"
4. git remote add origin "URL" to git repository that you just created in github.
5. git push --set-upstream origin master (branch)

Tuesday, April 30, 2019

EPiServer, C# - Create External Content Url


 public static string ContentExternalUrl(ContentReference contentLink, CultureInfo contentLanguage, bool absoluteUrl)
        {
            var result = ServiceLocator.Current.GetInstance
<UrlResolver>().GetUrl(
                contentLink,
                contentLanguage.Name,
                new VirtualPathArguments
                {
                    ContextMode = ContextMode.Default,
                    ForceCanonical = absoluteUrl
                });


            if (absoluteUrl)
            {
                Uri relativeUri;

                if (Uri.TryCreate(result, UriKind.RelativeOrAbsolute, out relativeUri))
                {
                    if (!relativeUri.IsAbsoluteUri)
                    {
                        var siteDefinitionResolver = ServiceLocator.Current.GetInstance
 <ISiteDefinitionResolver>();
                        var siteDefinition = siteDefinitionResolver.GetByContent(contentLink, true, true);
                        var hosts = siteDefinition.GetHosts(contentLanguage, true).ToList();

                        var host = hosts.FirstOrDefault(h => h.Type == HostDefinitionType.Primary)
                            ?? hosts.FirstOrDefault(h => h.Type == HostDefinitionType.Undefined);

                        var basetUri = siteDefinition.SiteUrl;

                        if (host != null && host.Name.Equals("*") == false)
                        {
                            Uri.TryCreate(siteDefinition.SiteUrl.Scheme + "://" + host.Name, UriKind.Absolute, out basetUri);
                        }

                        var absoluteUri = new Uri(basetUri, relativeUri);

                        return absoluteUri.AbsoluteUri;
                    }
                }
            }

            return result;
        }




OR:
  public static string ExternalUrl(this ContentReference contentLink)
        {
            var locator = ServiceLocator.Current.GetInstance<IContentLoader>();
            var pd = locator.Get<PageData>(contentLink);

            var urlString = UrlResolver.Current.GetUrl(contentLink, ((ILocalizable) pd).Language.Name, new VirtualPathArguments { ForceCanonical = true });
            if (string.IsNullOrEmpty(urlString))
            {
                return urlString;
            }

            var uri = new Uri(urlString, UriKind.RelativeOrAbsolute);
            if (uri.IsAbsoluteUri)
            {
                return urlString;
            }

            if (!uri.IsAbsoluteUri)
            {
                var siteDefResolver = ServiceLocator.Current.GetInstance<ISiteDefinitionResolver>();
                SiteDefinition siteDefinition = siteDefResolver.GetByContent(
                    contentLink: contentLink,
                    fallbackToWildcard: true,
                    fallbackToEmpty: true);

                return new Uri(siteDefinition.SiteUrl, uri).ToString();
            }

            return urlString;
        }

Sunday, April 28, 2019

React - Reminders

Example Contact card

<div className="contacts">
<ContactCard
contact={{name: "Mr. Whiskerson" }} //the first curly makes the JSX context to JS the second say its an object.
name="Mr. Whiskerson"
imgUrl="http://placekitten.com/300/200"
phone="(212) 555-1234"
email="mr.whiskaz@catnap.meow"
/>

Wednesday, April 3, 2019

Chrome Console - List all href links in a page

var links=document.getElementsByTagName('a')
for (var i = 0; i<links.length; i++)

    console.log(links[i].href);
}