Beispiel #1
0
        public void ThrowsWhenGivenStateThatDoesNotExist()
        {
            Lstring stateThatDoesNotExist = "foobar";

            TestDelegate fromLStringCall = () => ApprovalWorkflowState.FromLString(stateThatDoesNotExist);

            Assert.Throws <ArgumentException>(fromLStringCall);
        }
Beispiel #2
0
        public void ReturnNullWhenGivenNullOrWhiteSpaceValue(string nullOrWhiteSpaceString)
        {
            Lstring value = nullOrWhiteSpaceString;

            ApprovalWorkflowState approvalWorkflowState = ApprovalWorkflowState.FromLString(value);

            Assert.IsNull(approvalWorkflowState);
        }
Beispiel #3
0
        public void ReturnMatchingApprovalWorkflowState()
        {
            ApprovalWorkflowState expected = ApprovalWorkflowState.Scheduled;
            Lstring matchingString         = "Scheduled";

            ApprovalWorkflowState result = ApprovalWorkflowState.FromLString(matchingString);

            Assert.AreEqual(expected, result);
        }
Beispiel #4
0
        /// <summary>
        /// Gets an ApprovalWorkflowState object from a Sitefinity Lstring.
        /// </summary>
        /// <exception cref="ArgumentException">Thrown when one or more arguments have unsupported or
        /// illegal values.</exception>
        /// <param name="state">The state.</param>
        /// <returns>
        /// An ApprovalWorkflowState.
        /// </returns>
        public static ApprovalWorkflowState FromLString(Lstring state)
        {
            if (string.IsNullOrWhiteSpace(state))
            {
                return(null);
            }
            var states        = new[] { AwaitingApproval, Draft, Published, Scheduled };
            var selectedState = states.SingleOrDefault(s => s == state);

            if (selectedState == null)
            {
                throw new ArgumentException("Invalid ApprovalWorkFlowState string given.", "state");
            }
            return(selectedState);
        }
Beispiel #5
0
        static void Main(string[] args)
        {
            Lstring input = Console.ReadLine();
            string inputSecond = Console.ReadLine();

            if (input == "int")
            {
                int temp = int.Parse(inputSecond);
                FormatOutput(temp);

            }
            else if (input == "real")
            {
                double temp = double.Parse(inputSecond);
                FormatOutput(temp);
            }
            else if (input == "string")
            {
                FormatOutput(inputSecond);
            }
        }
        /// <summary>
        /// Gets the hreflangs
        /// </summary>
        /// <param name="e"></param>
        /// <param name="includeCurrentLanguage"></param>
        /// <returns></returns>
        private List <HtmlLink> GetAlternateLinks(IPagePreRenderCompleteEvent e, bool includeCurrentLanguage)
        {
            _logiszDebugger.AddDebugData("Include current language", includeCurrentLanguage.ToString());

            var alternateLinks = new List <HtmlLink>();

            #region Get page node

            PageNode pageNode = pageManager.GetPageNodes().Where(pN => pN.PageId == e.PageSiteNode.PageId).FirstOrDefault();

            #endregion

            #region Try get content item

            bool   foundDetailContentItem = false;
            string urlName = RemoveHostFromUrl(e.Page.Request);
            _logiszDebugger.AddDebugData("Urlname", urlName);

            object      contentObject = null;
            IHasUrlName o             = null;
            Lstring     finalUrlName  = new Lstring();

            //Check if excluded
            if (globalConfig.Modules.Hreflang.PageIsExcluded(urlName))
            {
                _logiszDebugger.AddDebugData("Page is excluded", "True");
                return(null);
            }

            bool pageWithUrlNameExists = (pageManager.GetPageNodes().Where(q => q.UrlName == urlName).Count() != 0);
            _logiszDebugger.AddDebugData("Found page with urlname", pageWithUrlNameExists.ToString());
            if (!pageWithUrlNameExists)
            {
                //No page found, search object.
                foundDetailContentItem = GetObjectByUrlName(pageNode, urlName, out contentObject);
                _logiszDebugger.AddDebugData("Found content item with urlname", foundDetailContentItem.ToString());

                if (contentObject != null)
                {
                    o = (IHasUrlName)contentObject;

                    if (o != null)
                    {
                        finalUrlName = o.UrlName;
                    }

                    //validate type of static modules
                    _logiszDebugger.AddDebugData("Type of content", contentObject.GetType().Name);
                    if (contentObject.GetType() == typeof(NewsItem))
                    {
                        NewsItem n = (NewsItem)contentObject;
                        finalUrlName = n.ItemDefaultUrl;
                    }
                }
            }



            #endregion

            #region Check for detailed page

            //Detailed page
            var cultures  = includeCurrentLanguage ? e.PageSiteNode.AvailableLanguages : e.PageSiteNode.AvailableLanguages.Where(c => c != CultureInfo.CurrentUICulture);
            var ulService = ObjectFactory.Resolve <UrlLocalizationService>();
            if (foundDetailContentItem)
            {
                foreach (var culture in cultures.Where(c => !string.IsNullOrWhiteSpace(c.Name)))
                {
                    var defaultLocation = UrlPath.ResolveUrl(ulService.ResolveUrl(e.PageSiteNode.GetUrl(culture, false), culture), true, true);
                    if (!string.IsNullOrWhiteSpace(defaultLocation))
                    {
                        string languagedUrlName = String.Empty;
                        finalUrlName.TryGetValue(out languagedUrlName, culture);

                        defaultLocation += "/" + languagedUrlName;
                        var alternateControl = new HtmlLink();
                        alternateControl.Attributes.Add("rel", "alternate");
                        alternateControl.Attributes.Add("href", defaultLocation);
                        alternateControl.Attributes.Add("hreflang", culture.TextInfo.CultureName);

                        _logiszDebugger.AddDebugData("Added hreflang tag (" + culture.TextInfo.CultureName + ")", defaultLocation);

                        alternateLinks.Add(alternateControl);
                    }
                }
            }

            #endregion

            #region Static page
            //Static page
            else
            {
                foreach (var culture in cultures.Where(c => !string.IsNullOrWhiteSpace(c.Name)))
                {
                    var defaultLocation = UrlPath.ResolveUrl(ulService.ResolveUrl(e.PageSiteNode.GetUrl(culture, false), culture), true, true);
                    if (!string.IsNullOrWhiteSpace(defaultLocation))
                    {
                        var alternateControl = new HtmlLink();
                        alternateControl.Attributes.Add("rel", "alternate");
                        alternateControl.Attributes.Add("href", defaultLocation);
                        alternateControl.Attributes.Add("hreflang", culture.TextInfo.CultureName);
                        _logiszDebugger.AddDebugData("Added hreflang tag (" + culture.TextInfo.CultureName + ")", defaultLocation);
                        alternateLinks.Add(alternateControl);
                    }
                }
            }

            #endregion

            return(alternateLinks);
        }
 public static string GetLstringValue(Lstring lstring)
 {
     return(lstring?.Value);
 }