Extension methods
Alle utility extensions ligger i namespace Ecreo.Essentials.Extensions.
String og HTML
Sektion kaldt “String og HTML”Filnavne, tags og erstatning
Sektion kaldt “Filnavne, tags og erstatning”ReplaceInvalidFileNameChars()
Beskrivelse: Erstatter tegn, der ikke er gyldige i filnavne.
Eksempel: "file\0name/".ReplaceInvalidFileNameChars('_')
Output: "file_name_"
MergeTags()
Beskrivelse: Erstatter merge-tags med værdier fra en dictionary.
Eksempel: "*|NAME|".MergeTags(dictionary: new() { ["NAME"] = "Ada" })
Output: "Ada"
MergeTags() med custom pattern
Beskrivelse: Erstatter tags ud fra et selvvalgt regex-mønster.
Eksempel: "{{NAME}}".MergeTags(@"\{\{([A-Za-z0-9]+)\}\}", new() { ["NAME"] = "Ada" })
Output: "Ada"
ReplaceIfMatches()
Beskrivelse: Erstatter regex-matches i strengen.
Eksempel: "hello".ReplaceIfMatches("h.*o", "world")
Output: "world"
ReplaceIfInvariant()
Beskrivelse: Erstatter hele strengen ved case-insensitive invariant sammenligning.
Eksempel: "Hello".ReplaceIfInvariant("hello", "world")
Output: "world"
ReplaceIf()
Beskrivelse: Erstatter hele strengen, når den matcher værdien præcist.
Eksempel: "Hello".ReplaceIf("hello", "world")
Output: "Hello"
ReplaceTokens()
Beskrivelse: Erstatter konkrete tokens med deres dictionary-værdier.
Eksempel: "Hello {name}".ReplaceTokens(new() { ["{name}"] = "Ada" })
Output: "Hello Ada"
Tomme værdier og HTML-indhold
Sektion kaldt “Tomme værdier og HTML-indhold”HasValue()
Beskrivelse: Returnerer true, når en string ikke er null, tom eller whitespace.
Eksempel: " ".HasValue()
Output: false
HasValue()
Beskrivelse: Returnerer true, når en string indeholder synligt indhold.
Eksempel: "x".HasValue()
Output: true
HasValue() på HtmlString
Beskrivelse: Tjekker om en HtmlString indeholder tekst efter rendering.
Eksempel: new HtmlString("x").HasValue()
Output: true
HasValue() på IHtmlContent
Beskrivelse: Tjekker om HTML-indhold indeholder tekst efter rendering.
Eksempel: (new HtmlString("x") as IHtmlContent).HasValue()
Output: true
IsNullOrWhiteSpace() på HtmlString
Beskrivelse: Returnerer true, når en ikke-null HtmlString er tom eller whitespace.
Eksempel: new HtmlString("").IsNullOrWhiteSpace()
Output: true
IsNullOrWhiteSpace() på IHtmlContent
Beskrivelse: Returnerer true, når ikke-null HTML-indhold er tomt eller whitespace.
Eksempel: (new HtmlString("") as IHtmlContent).IsNullOrWhiteSpace()
Output: true
ToHtmlString()
Beskrivelse: Pakker en string ind som HtmlString.
Eksempel: "hello".ToHtmlString().ToString()
Output: "hello"
Parsing
Sektion kaldt “Parsing”TryParseToDecimal()
Beskrivelse: Parser en string til decimal med valgfri kultur og fallback.
Eksempel: "123,45".TryParseToDecimal(CultureInfo.GetCultureInfo("da-DK"))
Output: 123.45m
TryParseToDecimal() med fallback
Beskrivelse: Returnerer fallback-værdien, når decimal-parsing fejler.
Eksempel: "abc".TryParseToDecimal(fallback: 9m)
Output: 9m
TryParseToBoolean() med custom true-værdi
Beskrivelse: Parser en string til bool med en selvvalgt sand værdi.
Eksempel: "yes".TryParseToBoolean("yes")
Output: true
TryParseToBoolean()
Beskrivelse: Parser en string til bool med "True" som standard sand værdi.
Eksempel: "false".TryParseToBoolean()
Output: false
TryParseToInt()
Beskrivelse: Parser en string til int og returnerer 0, hvis parsing fejler.
Eksempel: "123".TryParseToInt()
Output: 123
TryParseToInt() med fallback
Beskrivelse: Parser en string til int med en selvvalgt fallback-værdi.
Eksempel: "abc".TryParseToInt(99)
Output: 99
Tekstudsnit og HTML-formattering
Sektion kaldt “Tekstudsnit og HTML-formattering”TruncateAtWord()
Beskrivelse: Afkorter tekst ved et ordskel og tilføjer ellipsis som HTML.
Eksempel: "Hello world this is a test".TruncateAtWord(15).ToString()
Output: "Hello world…"
SubstringBefore()
Beskrivelse: Returnerer teksten før den første forekomst af en separator.
Eksempel: "hello-world".SubstringBefore("-")
Output: "hello"
SubstringBefore() uden match
Beskrivelse: Returnerer en tom string, hvis separatoren ikke findes.
Eksempel: "hello".SubstringBefore("-")
Output: ""
SubstringAfter()
Beskrivelse: Returnerer teksten efter den første forekomst af en separator.
Eksempel: "hello-world".SubstringAfter("-")
Output: "world"
SubstringAfter() uden match
Beskrivelse: Returnerer en tom string, hvis separatoren ikke findes.
Eksempel: "hello".SubstringAfter("-")
Output: ""
ReplaceLinebreaksWithBrs()
Beskrivelse: Konverterer linjeskift til <br /> og returnerer HTML.
Eksempel: "line1\nline2".ReplaceLinebreaksWithBrs().ToString()
Output: "line1<br />line2"
AddHtmlParagraphs()
Beskrivelse: Pakker tekstafsnit ind i <p>-tags.
Eksempel: "p1\n\np2".AddHtmlParagraphs().ToString()
Output: "<p>p1</p>\n\n<p>p2</p>"
AddHtmlParagraphs() med attributes
Beskrivelse: Tilføjer HTML-attributter til de genererede <p>-tags.
Eksempel: "p1".AddHtmlParagraphs(htmlAttributes: new() { ["class"] = "lead" }).ToString()
Output: "<p class=\"lead\">p1</p>"
Case og tegn
Sektion kaldt “Case og tegn”ToCamelCase()
Beskrivelse: Konverterer tekst til camelCase.
Eksempel: "hello-world".ToCamelCase()
Output: "helloWorld"
ToPascalCase()
Beskrivelse: Konverterer tekst til PascalCase.
Eksempel: "hello_world".ToPascalCase()
Output: "HelloWorld"
ToKebabCase()
Beskrivelse: Konverterer tekst til kebab-case.
Eksempel: "hello world".ToKebabCase()
Output: "hello-world"
RemoveSpecialCharacters()
Beskrivelse: Fjerner specialtegn, men bevarer bogstaver, tal og mellemrum.
Eksempel: "a!b@c#1 2".RemoveSpecialCharacters()
Output: "abc1 2"
DateTime
Sektion kaldt “DateTime”Tidszoner og offsets
Sektion kaldt “Tidszoner og offsets”ToRomanceStandardTime()
Beskrivelse: Konverterer en dato til tidszonen Romance Standard Time.
Eksempel: new DateTime(2024, 6, 15, 12, 0, 0, DateTimeKind.Utc).ToRomanceStandardTime()
Output: 2024-06-15 14:00:00
ToDateTimeOffset()
Beskrivelse: Opretter en DateTimeOffset i den angivne tidszone.
Eksempel: new DateTime(2024, 6, 15, 12, 0, 0).ToDateTimeOffset()
Output: 2024-06-15 12:00:00 +02:00
ToDateTimeOffset("UTC")
Beskrivelse: Opretter en DateTimeOffset med UTC-offset.
Eksempel: new DateTime(2024, 6, 15, 12, 0, 0).ToDateTimeOffset("UTC")
Output: 2024-06-15 12:00:00 +00:00
ToTimeZone()
Beskrivelse: Konverterer en dato til en tidszone, som standard Romance Standard Time.
Eksempel: new DateTime(2024, 1, 15, 12, 0, 0, DateTimeKind.Utc).ToTimeZone()
Output: 2024-01-15 13:00:00
ToTimeZone() nullable
Beskrivelse: Returnerer null, når den nullable dato ikke har en værdi.
Eksempel: ((DateTime?)null).ToTimeZone()
Output: null
Dato-checks og fallback
Sektion kaldt “Dato-checks og fallback”IsInRange()
Beskrivelse: Tjekker om en dato ligger mellem start- og slutdato inklusiv.
Eksempel: new DateTime(2024, 6, 15).IsInRange(new(2024, 1, 1), new(2024, 12, 31))
Output: true
IfNullOrMin() nullable
Beskrivelse: Returnerer fallback-værdien, når datoen er null eller DateTime.MinValue.
Eksempel: ((DateTime?)null).IfNullOrMin(new DateTime(2024, 1, 1))
Output: 2024-01-01 00:00:00
IfNullOrMin()
Beskrivelse: Returnerer fallback-værdien, når datoen er DateTime.MinValue.
Eksempel: DateTime.MinValue.IfNullOrMin(new DateTime(2024, 1, 1))
Output: 2024-01-01 00:00:00
IsNullOrMin()
Beskrivelse: Returnerer true, når en nullable dato er null eller DateTime.MinValue.
Eksempel: ((DateTime?)DateTime.MinValue).IsNullOrMin()
Output: true
IsNotNullOrMin()
Beskrivelse: Returnerer true, når en nullable dato har en reel værdi.
Eksempel: ((DateTime?)new DateTime(2024, 6, 15)).IsNotNullOrMin()
Output: true
URI og HTTP
Sektion kaldt “URI og HTTP”Query strings
Sektion kaldt “Query strings”SetQueryString()
Beskrivelse: Udskifter hele query string på en URI.
Eksempel: new Uri("https://example.com/path?a=1").SetQueryString(new QueryString("?b=2"))
Output: https://example.com/path?b=2
SetParam()
Beskrivelse: Sætter eller erstatter en enkelt query parameter.
Eksempel: new Uri("https://example.com/path?a=1").SetParam("a", "99")
Output: https://example.com/path?a=99
SetParam() ny param
Beskrivelse: Tilføjer query parameteren, hvis den ikke allerede findes.
Eksempel: new Uri("https://example.com/path").SetParam("page", "2")
Output: https://example.com/path?page=2
RemoveParams()
Beskrivelse: Fjerner en eller flere query parametre fra en URI.
Eksempel: new Uri("https://example.com/path?a=1&b=2").RemoveParams("a")
Output: https://example.com/path?b=2
RemoveParams() flere
Beskrivelse: Fjerner alle angivne query parametre og efterlader stien uden query.
Eksempel: new Uri("https://example.com/path?a=1&b=2").RemoveParams("a", "b")
Output: https://example.com/path
RelativeUri()
Beskrivelse: Konverterer en absolut URI til en relativ URI med path og query.
Eksempel: new Uri("https://example.com/path").RelativeUri()
Output: Relativ Uri uden absolut host
Request og context counters
Sektion kaldt “Request og context counters”HttpRequest.ToUri()
Beskrivelse: Bygger en absolut Uri ud fra en HttpRequest.
Eksempel: HTTPS request til example.com:8443/path?foo=bar
Output: https://example.com:8443/path?foo=bar
HttpContext.GetCounter()
Beskrivelse: Læser en integer-counter fra HttpContext.Items.
Eksempel: context.GetCounter("box") før key findes
Output: 0
HttpContext.IncrementCounter()
Beskrivelse: Øger en counter i HttpContext.Items med 1.
Eksempel: context.IncrementCounter("box")
Output: 1
HttpContext.IncrementCounter() med amount
Beskrivelse: Øger en counter i HttpContext.Items med et selvvalgt antal.
Eksempel: context.IncrementCounter("box", 3) efter 1
Output: 4
Tal, GUID og collections
Sektion kaldt “Tal, GUID og collections”IsOdd()
Beskrivelse: Returnerer true, når tallet er ulige.
Eksempel: 3.IsOdd()
Output: true
IsOdd()
Beskrivelse: Returnerer false, når tallet er lige.
Eksempel: 4.IsOdd()
Output: false
IsEven()
Beskrivelse: Returnerer true, når tallet er lige.
Eksempel: 4.IsEven()
Output: true
IsEven()
Beskrivelse: Returnerer false, når tallet er ulige.
Eksempel: 3.IsEven()
Output: false
IsNth()
Beskrivelse: Tjekker om tallet rammer hvert n-te interval.
Eksempel: 6.IsNth(3)
Output: true
IsNth() med index
Beskrivelse: Tjekker n-te interval forskudt med et index.
Eksempel: 7.IsNth(3, index: 1)
Output: true
Guid.ToHtmlId()
Beskrivelse: Laver et HTML-venligt id ud fra en Guid og et valgfrit prefix.
Eksempel: guid.ToHtmlId("section")
Output: "section-{hex}"
Guid.ToHtmlId() med prefix der slutter på -
Beskrivelse: Genbruger prefix uden at tilføje et ekstra bindestreg.
Eksempel: guid.ToHtmlId("section-")
Output: "section-{hex}"
Guid.ToHtmlId() bruger Guid’ens hash som sidste del. Brug outputtet som et stabilt HTML-id i samme kørsel, men undgå at gemme hashdelen som data.
Collections
Sektion kaldt “Collections”EmptyIfNull() på List<T>
Beskrivelse: Returnerer en tom liste, når listen er null.
Eksempel: ((List<int>?)null).EmptyIfNull()
Output: Tom List<int>
EmptyIfNull() på array
Beskrivelse: Returnerer et tomt array, når arrayet er null.
Eksempel: ((int[]?)null).EmptyIfNull()
Output: Tomt int[]
EmptyIfNull() på IEnumerable<T>
Beskrivelse: Returnerer en tom enumerable, når sekvensen er null.
Eksempel: ((IEnumerable<int>?)null).EmptyIfNull()
Output: Tom enumerable
ViewData
Sektion kaldt “ViewData”GetValue<T>()
Beskrivelse: Henter en typed værdi fra ViewData.
Eksempel: ViewData["title"] = "Forside"; ViewData.GetValue<string>("title")
Output: "Forside"
GetValue<T>() med fallback
Beskrivelse: Returnerer en fallback-værdi, når nøglen mangler.
Eksempel: ViewData.GetValue("title", "Fallback") når key mangler
Output: "Fallback"
GetValue<T>() uden fallback
Beskrivelse: Returnerer null, når nøglen mangler og ingen fallback er angivet.
Eksempel: ViewData.GetValue<string>("title") når key mangler
Output: null