public static LinkItem CreateActionLink(string action, string controller, LinkQuality quality, string linkText, string parameterValue) { var link = new LinkItem(); link.Action = action; link.Controller = controller; link.Quality = quality; link.LinkText = linkText; link.ParameterValue = parameterValue; return(link); }
/// <summary> /// Creates a list of Link items for all links recommended for a certain taxon. /// </summary> /// <param name="taxon">The taxon.</param> /// <returns>A list of link items.</returns> public static List <LinkItem> GetRecommendedLinks(ITaxon taxon, bool isInRevision) { var sp = new Stopwatch(); sp.Start(); var links = new List <LinkItem>(); var linkManager = new LinkManager(); LinkItem item = null; string url = ""; IUserContext userContext = CoreData.UserManager.GetCurrentUser(); //Add link to Artfakta url = linkManager.GetUrlToArtfakta(taxon.Id.ToString()); if (url != "") { item = new LinkItem(LinkType.Url, LinkQuality.Automatic, Resources.DyntaxaResource.LinkToArtfaktaLabel, url); links.Add(item); } //Add link to Photos from Artportalen url = linkManager.GetUrlToMediaAP(taxon.Id.ToString()); if (url != "") { item = new LinkItem( LinkType.Url, LinkQuality.ApprovedByExpert, Resources.DyntaxaResource.LinkToPhotosAPLabel, url); links.Add(item); } //Add link to Nobanis url = linkManager.GetUrlToNobanis(taxon.ScientificName); if (url != "") { item = new LinkItem(LinkType.Url, LinkQuality.Automatic, Resources.DyntaxaResource.LinkToNobanisLabel, url); links.Add(item); } //Add link to SKUD url = linkManager.GetUrlToSkud(); if (url != "") { item = new LinkItem(LinkType.Url, LinkQuality.Automatic, Resources.DyntaxaResource.LinkToSkudLabel, url); links.Add(item); } //Add link to Naturforskaren taxon information url = linkManager.GetUrlToNaturforskaren(taxon.ScientificName); if (url != "") { item = new LinkItem(LinkType.Url, LinkQuality.Automatic, Resources.DyntaxaResource.LinkToNaturforskarenLabel, url); links.Add(item); } if (taxon.ScientificName.IsNotEmpty()) { //item = LinkItem.CreateActionLink("RedirectToGBIF", "Taxon", LinkQuality.Automatic, Resources.DyntaxaResource.LinkToGbifLabel, taxon.Id.ToString()); //links.Add(item); //Add link to GBIF // 2015-03-10 Link to GBIF broken /* * url = linkManager.GetUrlToGBIF(taxon.ScientificName); * if (url != "") * { * item = new LinkItem(LinkType.Url, LinkQuality.Automatic, Resources.DyntaxaResource.LinkToGbifLabel, url); * links.Add(item); * } */ //Add link to EoL url = linkManager.GetUrlToEoL(taxon.ScientificName); if (url != "") { item = new LinkItem(LinkType.Url, LinkQuality.Automatic, Resources.DyntaxaResource.LinkToEoLLabel, url); links.Add(item); } //Add link to Biodiversity Heritage Library. url = linkManager.GetUrlToBiodiversityHeritageLibrary(taxon.ScientificName); if (url != "") { item = new LinkItem(LinkType.Url, LinkQuality.Automatic, Resources.DyntaxaResource.LinkToBHLLabel, url); links.Add(item); } } var guidNames = taxon.GetTaxonNamesBySearchCriteria(userContext, (int)TaxonNameCategoryId.Guid, null, null, null, isInRevision, false); foreach (var name in guidNames) { LinkItem linkItem = null; //Add a link to PESI Taxon information. url = Resources.DyntaxaSettings.Default.UrlToGetPESITaxonInformation.Replace("[GUID]", name.Name); if (name.IsRecommended) { linkItem = new LinkItem(LinkType.Url, LinkQuality.ApprovedByExpert, Resources.DyntaxaResource.LinkToPesiLabel, url); links.Add(linkItem); } else { linkItem = new LinkItem(LinkType.Url, LinkQuality.Automatic, Resources.DyntaxaResource.LinkToPesiLabel, url); links.Add(linkItem); } } //Add a link to ITIS Taxon information. var itisNumberNames = taxon.GetTaxonNamesBySearchCriteria(userContext, (int)TaxonNameCategoryId.ItisNumber, null, null, true, isInRevision, false); foreach (var name in itisNumberNames) { LinkItem linkItem = null; url = Resources.DyntaxaSettings.Default.UrlToGetITISTaxonInformation.Replace("[Id]", name.Name); linkItem = new LinkItem(LinkType.Url, LinkQuality.ApprovedByExpert, Resources.DyntaxaResource.LinkToItisLabel, url); links.Add(linkItem); } foreach (var name in guidNames) { LinkItem linkItem = null; ////Add a link to Algaebase Taxon information. //url = linkManager.GetUrlToAlgaebaseTaxonInformation(name.Name); //if (url.IsNotEmpty()) //{ // linkItem = new LinkItem(LinkType.Url, LinkQuality.Automatic, Resources.DyntaxaResource.LinkToAlgaebaseLabel, url); // links.Add(linkItem); // url = linkManager.GetUrlToNordicMicroalgaeTaxonInformation(taxon.ScientificName); // linkItem = new LinkItem(LinkType.Url, LinkQuality.Automatic, Resources.DyntaxaResource.LinkToNordicMicroalgaeLabel, url); // links.Add(linkItem); //} //Add a link to World Register of Marine Species (WoRMS) Taxon information. url = linkManager.GetUrlToWormsTaxonInformation(name.Name); if (url.IsNotEmpty()) { linkItem = new LinkItem(LinkType.Url, LinkQuality.Automatic, Resources.DyntaxaResource.LinkToWormsLabel, url); links.Add(linkItem); url = linkManager.GetUrlToNordicMicroalgaeTaxonInformation(taxon.ScientificName); linkItem = new LinkItem(LinkType.Url, LinkQuality.Automatic, Resources.DyntaxaResource.LinkToNordicMicroalgaeLabel, url); links.Add(linkItem); } //Add a link to Fauna Europea Taxon information. url = linkManager.GetUrlToFaunaEuropeaTaxonInformation(name.Name); if (url.IsNotEmpty()) { linkItem = new LinkItem(LinkType.Url, LinkQuality.Automatic, Resources.DyntaxaResource.LinkToFaunaEuropeaLabel, url); links.Add(linkItem); } } //Add link to WIKI taxon information url = linkManager.GetUrlToWikipedia(taxon.ScientificName); if (url != "") { item = new LinkItem(LinkType.Url, LinkQuality.Automatic, Resources.DyntaxaResource.LinkToWikipediaLabel, url); links.Add(item); } //Add link to Google url = linkManager.GetUrlToGoogleSearchResults(taxon.ScientificName); if (url != "") { item = new LinkItem(LinkType.Url, LinkQuality.Automatic, Resources.DyntaxaResource.LinkToGoogleLabel, url); links.Add(item); } sp.Stop(); Debug.WriteLine("TaxonInfo - Retrieving links: {0:N0} milliseconds", sp.ElapsedMilliseconds); return(links); }