public override CharacterAttributeRowResource Enrich(ICharacterAttributeRow content, bool expand = false)
        {
            var resource = EntityToDtoMapper.Map <CharacterAttributeRowResource>(content);

            var characterLink = CreateNameBasedLink <CharacterLink>(content.Owner, nameof(CharacterController.GetSingleCharacterByName), "Character");
            var selfLink      = CreateIdBasedLink <SelfLink>(content.InstanceId, nameof(CharacterAttributeController.GetCharacterAttributeById), "CharacterAttribute");

            resource.AddLink(selfLink);
            resource.AddLink(characterLink);

            var relatedLinks = new RelatedLinks();

            if (content.OwnerId <= 58)
            {
                relatedLinks.Smash4           = new ExpandoObject();
                relatedLinks.Smash4.Character = characterLink.Href.ReplaceUltimateWithSmash4();
            }

            relatedLinks.Ultimate           = new ExpandoObject();
            relatedLinks.Ultimate.Character = characterLink.Href.ReplaceSmash4WithUltimate();

            new RelatedLinkSelfLinkAttacher().AddSelf(relatedLinks, content.Game, selfLink);

            resource.AddRelated(relatedLinks);

            return(resource);
        }
Ejemplo n.º 2
0
 public bool Equals(Related other)
 {
     return(string.Equals(DataUrl, other.DataUrl) &&
            string.Equals(Asin, other.Asin) &&
            RelatedLinks.ListsAreEqual(other.RelatedLinks) &&
            Categories.ListsAreEqual(other.Categories));
 }
        protected void Page_Load(object sender, EventArgs args)
        {
            Collections.DataSource = Children;
            Collections.DataBind();

            RelatedLinks.DataSource = Shortcuts;
            RelatedLinks.DataBind();
        }
Ejemplo n.º 4
0
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = (DataUrl != null ? DataUrl.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (Asin != null ? Asin.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (RelatedLinks != null ? RelatedLinks.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (Categories != null ? Categories.GetHashCode() : 0);
         return(hashCode);
     }
 }
Ejemplo n.º 5
0
        public override CharacterAttributeNameResource Enrich(ICharacterAttributeName content, bool expand = false)
        {
            var resource = EntityToDtoMapper.Map <CharacterAttributeNameResource>(content);

            var allAttributesForNameLink = CreateNameBasedLink <CharacterAttributesLink>(content.Name, nameof(CharacterAttributeController.GetAllCharacterAttributesWithName), " CharacterAttribute");

            resource.AddLink(allAttributesForNameLink);

            var relatedLinks = new RelatedLinks();

            return(resource);
        }
        public void AddsSmash4SelfLinkForSmash4Game()
        {
            var sut          = new RelatedLinkSelfLinkAttacher();
            var relatedLinks = new RelatedLinks();

            relatedLinks.Smash4 = new ExpandoObject();

            sut.AddSelf(relatedLinks, Games.Smash4, new SelfLink("testurl"));

            Assert.DoesNotThrow(() => relatedLinks.Smash4.Self.ToString());
            Assert.That(relatedLinks.Smash4.Self.ToString(), Is.EqualTo("testurl"));
        }
Ejemplo n.º 7
0
        public void CanConvertRelatedLinksToRelatedLink()
        {
            var links = new RelatedLinks(new List <RelatedLink> {
                new RelatedLink()
            }, "Test");

            // Property is not enumerable, but value is, so grab first item
            IEnumerator enumerator = ((IEnumerable)links).GetEnumerator();
            object      link       = enumerator.MoveNext() ? enumerator.Current : null;

            Assert.NotNull(link);
        }
        public void AddSelf(RelatedLinks existingRelatedLinks, Games game, SelfLink selfLink)
        {
            Guard.VerifyObjectNotNull(selfLink, nameof(selfLink));
            Guard.VerifyObjectNotNull(existingRelatedLinks, nameof(existingRelatedLinks));

            if (game == Games.Ultimate)
            {
                existingRelatedLinks.Ultimate.Self = selfLink.Href.ReplaceSmash4WithUltimate();
            }
            else
            {
                existingRelatedLinks.Smash4.Self = selfLink.Href.ReplaceUltimateWithSmash4();
            }
        }
        public override dynamic Enrich(IUniqueData content, bool expand = false)
        {
            var resource = EntityToDtoMapper.Map <UniqueDataResource>(content);

            var characterLink = CreateNameBasedLink <CharacterLink>(content.Owner, nameof(CharacterController.GetSingleCharacterByName), "Character");
            var selfLink      = CreateIdBasedLink <SelfLink>(content.InstanceId, nameof(UniqueDataController.GetAllUniquePropertiesById), "UniqueData");

            var resd  = new ExpandoObject() as IDictionary <string, object>;
            var props = content.GetType().GetProperties().ToList();

            props.ForEach(prop =>
            {
                var value = prop.GetValue(content);
                resd.Add(prop.Name, value);
            });

            var links = new List <Link>();

            links.Add(selfLink);
            links.Add(characterLink);

            resd.Add("Links", links);

            resource.AddLink(selfLink);
            resource.AddLink(characterLink);


            var relatedLinks = new RelatedLinks();

            if (content.OwnerId <= 58)
            {
                relatedLinks.Smash4           = new ExpandoObject();
                relatedLinks.Smash4.Character = characterLink.Href.ReplaceUltimateWithSmash4();
            }

            relatedLinks.Ultimate           = new ExpandoObject();
            relatedLinks.Ultimate.Character = characterLink.Href.ReplaceSmash4WithUltimate();

            new RelatedLinkSelfLinkAttacher().AddSelf(relatedLinks, content.Game, selfLink);

            resd.Add("Related", relatedLinks);
            //resource.AddRelated(relatedLinks);

            return(resd);
            //return resource;
        }
        public IEnumerable <SocialMediaNavigationItemViewModel> GetSocialMediaLinks(RelatedLinks relatedLinks)
        {
            var links = new List <SocialMediaNavigationItemViewModel>();

            if (relatedLinks == null)
            {
                return(links);
            }

            foreach (var relatedLink in relatedLinks)
            {
                var link = _navigationItemService.GetViewModel <SocialMediaNavigationItemViewModel>(relatedLink);
                link.IconClassSuffix = relatedLink.Caption.ToLower();

                links.Add(link);
            }

            return(links);
        }
Ejemplo n.º 11
0
        public static SiteSettings SiteSettings(this IPublishedContent content)
        {
            IPublishedContent root = content.AncestorOrSelf(1);

            foreach (IPublishedContent child in root.Children)
            {
                RelatedLinks footerLinks = child.GetPropertyValue <RelatedLinks>(PropertyNames.FooterLinks);
                if (footerLinks == null)
                {
                    continue;
                }

                return(new SiteSettings
                {
                    FooterLinks = footerLinks.Cast <RelatedLink>().Select(x => new KeyValuePair <string, string>(x.Link, x.Caption)),
                    SiteUrl = child.GetPropertyValue <string>(PropertyNames.SiteUrl)
                });
            }

            return(null);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Initializes a new instance of the <see cref="PackageCommand"/> class.
        /// </summary>
        public PackageCommand() : base()
        {
            Name        = Id;
            IsInternal  = true;
            Target      = typeof(PackageCommand);
            Description = "";
            Examples.Add(new Example("", ""));
            RelatedLinks.Add("");

            Add(new Argument(nameof(ExecutableFile), typeof(string))
            {
                Position    = 0,
                Description = "",
                IsRequired  = true
            }, new Argument(nameof(PackageKind), typeof(ShellKind))
            {
                Position    = 1,
                Description = "",
                Default     = (ShellKind.Powershell)
            });
        }
        public override CharacterResource Enrich(ICharacter content, bool expand = false)
        {
            var resource = EntityToDtoMapper.Map <CharacterResource>(content);

            var movesLink = CreateNameBasedLink <MovesLink>(content.Name, nameof(CharacterController.GetAllMovesForCharacterWhereName), "Character");
            var characterAttributesLink = CreateNameBasedLink <CharacterAttributesLink>(content.Name, nameof(CharacterController.GetAttributesForCharacterByName), "Character");
            var movementsLink           = CreateNameBasedLink <MovementsLink>(content.Name, nameof(CharacterController.GetAllMovementsForCharacterWhereName), "Character");
            var selfLink             = CreateNameBasedLink <SelfLink>(content.Name, nameof(CharacterController.GetSingleCharacterByName), "Character");
            var uniquePropertiesLink = CreateNameBasedLink <UniquePropertiesLink>(content.Name, nameof(CharacterController.GetUniquePropertiesForCharacterByName), "Character");

            resource.AddLink(selfLink);
            resource.AddLink(movesLink);
            resource.AddLink(characterAttributesLink);
            resource.AddLink(movementsLink);
            resource.AddLink(uniquePropertiesLink);

            //new hateoas stuff
            var relatedLinks = new RelatedLinks();

            if (content.OwnerId <= 58)
            {
                relatedLinks.Smash4                  = new ExpandoObject();
                relatedLinks.Smash4.Self             = selfLink.Href.ReplaceUltimateWithSmash4();
                relatedLinks.Smash4.Moves            = movesLink.Href.ReplaceUltimateWithSmash4();
                relatedLinks.Smash4.Movements        = movementsLink.Href.ReplaceUltimateWithSmash4();
                relatedLinks.Smash4.Attributes       = characterAttributesLink.Href.ReplaceUltimateWithSmash4();
                relatedLinks.Smash4.UniqueProperties = uniquePropertiesLink.Href.ReplaceUltimateWithSmash4();
            }

            relatedLinks.Ultimate                  = new ExpandoObject();
            relatedLinks.Ultimate.Self             = selfLink.Href.ReplaceSmash4WithUltimate();
            relatedLinks.Ultimate.Moves            = movesLink.Href.ReplaceSmash4WithUltimate();
            relatedLinks.Ultimate.Movements        = movementsLink.Href.ReplaceSmash4WithUltimate();
            relatedLinks.Ultimate.Attributes       = characterAttributesLink.Href.ReplaceSmash4WithUltimate();
            relatedLinks.Ultimate.UniqueProperties = uniquePropertiesLink.Href.ReplaceSmash4WithUltimate();

            resource.AddRelated(relatedLinks);

            return(resource);
        }
Ejemplo n.º 14
0
        void importRelinks(PSObject relink)
        {
            List <PSObject> relinks = new List <PSObject>();

            if (!(relink.Members["navigationLink"].Value is PSObject))
            {
                relinks = new List <PSObject>((PSObject[])relink.Members["navigationLink"].Value);
            }
            else
            {
                relinks.Add((PSObject)relink.Members["navigationLink"].Value);
            }
            foreach (PSObject link in relinks)
            {
                String linkText = ((String)((PSObject)link.Members["linkText"].Value).BaseObject).Replace("-", String.Empty).Trim();
                String uri      = (String)((PSObject)link.Members["uri"].Value).BaseObject;
                RelatedLinks.Add(new RelatedLink {
                    LinkText = linkText,
                    LinkUrl  = uri
                });
            }
        }
Ejemplo n.º 15
0
        /// <summary>
        /// @UE3 Parse each individual row of meta data
        /// </summary>
        /// <param name="match"></param>
        /// <returns></returns>
        private string ParseMetadataRow(Match match, TransformationData data, bool full = true)
        {
            var metaValue        = match.Groups["MetadataValue"].Value;
            var metaDataCategory = match.Groups["MetadataKey"].Value;

            if (metaDataCategory.Contains(' '))
            {
                data.ErrorList.Add(
                    Markdown.GenerateError(
                        Language.Message("MetadataNamesMustNotContainSpaces", metaDataCategory),
                        MessageClass.Warning,
                        metaDataCategory,
                        data.ErrorList.Count,
                        data));
            }

            var metaDataCategoryLowerCase = metaDataCategory.ToLower();

            // If value is blank change to paragraph for table creation classification form
            if (!String.IsNullOrWhiteSpace(match.Groups["MetadataValue"].Value))
            {
                if (metaDataCategoryLowerCase == "title")
                {
                    DocumentTitle = metaValue;
                }

                if (metaDataCategoryLowerCase == "seo-title")
                {
                    SEOTitle = metaValue;
                }

                if (metaDataCategoryLowerCase == "crumbs")
                {
                    CrumbsLinks.Add(metaValue);
                }

                if (metaDataCategoryLowerCase == "related" && full)
                {
                    RelatedLinks.Add(data.Markdown.ProcessRelated(metaValue, data));
                }

                if (metaDataCategoryLowerCase == "prereq" && full)
                {
                    PrereqLinks.Add(data.Markdown.ProcessPrereqs(metaValue, data));
                }

                if (metaDataCategoryLowerCase == "version")
                {
                    EngineVersions.Add(Hash.FromAnonymousObject(new { version = metaValue, label = metaValue.Replace('.', '_') }));
                }

                if (metaDataCategoryLowerCase == "skilllevel")
                {
                    SkillLevels.Add(metaValue);
                }

                if (metaDataCategoryLowerCase == "tags")
                {
                    Tags.Add(CultureInfo.CurrentCulture.TextInfo.ToTitleCase(metaValue));
                }
            }

            // Add meta data to the list, we require some specific meta data keys to be unique others can be duplicates
            if (metaDataCategoryLowerCase.Equals("title") || metaDataCategoryLowerCase.Equals("seo-title") ||
                metaDataCategoryLowerCase.Equals("description") || metaDataCategoryLowerCase.Equals("seo-description") ||
                metaDataCategoryLowerCase.Equals("template") || metaDataCategoryLowerCase.Equals("forcepublishfiles"))
            {
                if (MetadataMap.ContainsKey(metaDataCategoryLowerCase))
                {
                    data.ErrorList.Add(
                        new ErrorDetail(
                            Language.Message("DuplicateMetadataDetected", metaDataCategory),
                            MessageClass.Info,
                            "",
                            "",
                            0,
                            0));
                }
                else
                {
                    var valueList = new List <string>();
                    valueList.Add(match.Groups["MetadataValue"].Value);
                    MetadataMap.Add(metaDataCategoryLowerCase, valueList);
                }
            }
            else
            {
                if (MetadataMap.ContainsKey(metaDataCategoryLowerCase))
                {
                    MetadataMap[metaDataCategoryLowerCase].Add(match.Groups["MetadataValue"].Value);
                }
                else
                {
                    var valueList = new List <string>();
                    valueList.Add(match.Groups["MetadataValue"].Value);
                    MetadataMap.Add(metaDataCategoryLowerCase, valueList);
                }
            }

            // Return empty string, we are removing the meta data from the document
            return("");
        }
Ejemplo n.º 16
0
        /// <summary>
        /// @UE3 Parse each individual row of meta data
        /// </summary>
        /// <param name="match"></param>
        /// <returns></returns>
        private string ParseMetadataRow(Match match, TransformationData data)
        {
            var metaValue        = match.Groups["MetadataValue"].Value;
            var metaDataCategory = match.Groups["MetadataKey"].Value;

            if (metaDataCategory.Contains(' '))
            {
                data.ErrorList.Add(
                    Markdown.GenerateError(
                        Language.Message("MetadataNamesMustNotContainSpaces", metaDataCategory),
                        MessageClass.Warning,
                        metaDataCategory,
                        data.ErrorList.Count,
                        data));
            }

            var metaDataCategoryLowerCase = metaDataCategory.ToLower();

            // If value is blank change to paragraph for table creation classification form
            if (!String.IsNullOrWhiteSpace(match.Groups["MetadataValue"].Value))
            {
                if (metaDataCategoryLowerCase == "title")
                {
                    DocumentTitle = metaValue;
                }

                if (metaDataCategoryLowerCase == "crumbs")
                {
                    CrumbsLinks.Add(metaValue);
                }

                if (metaDataCategoryLowerCase == "related")
                {
                    RelatedLinks.Add(data.Markdown.ProcessRelated(metaValue, data));
                }
            }

            // Add meta data to the list, we require some specific meta data keys to be unique others can be duplicates
            if (metaDataCategoryLowerCase.Equals("title") || metaDataCategoryLowerCase.Equals("description") ||
                metaDataCategoryLowerCase.Equals("template") || metaDataCategoryLowerCase.Equals("forcepublishfiles"))
            {
                if (MetadataMap.ContainsKey(metaDataCategoryLowerCase))
                {
                    data.ErrorList.Add(
                        new ErrorDetail(
                            Language.Message("DuplicateMetadataDetected", metaDataCategory),
                            MessageClass.Info,
                            "",
                            "",
                            0,
                            0));
                }
                else
                {
                    var valueList = new List <string>();
                    valueList.Add(match.Groups["MetadataValue"].Value);
                    MetadataMap.Add(metaDataCategoryLowerCase, valueList);
                }
            }
            else
            {
                if (MetadataMap.ContainsKey(metaDataCategoryLowerCase))
                {
                    MetadataMap[metaDataCategoryLowerCase].Add(match.Groups["MetadataValue"].Value);
                }
                else
                {
                    var valueList = new List <string>();
                    valueList.Add(match.Groups["MetadataValue"].Value);
                    MetadataMap.Add(metaDataCategoryLowerCase, valueList);
                }
            }

            // Return empty string, we are removing the meta data from the document
            return("");
        }