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); }
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(); }
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); } }
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")); }
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); }
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); }
/// <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); }
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 }); } }
/// <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(""); }
/// <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(""); }