< Summary

Information
Class: MyNet.Geography.CultureExtensions
Assembly: MyNet.Geography
File(s): https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.Geography/Extensions/CultureExtensions.cs
Tag: 323_28699572109
Line coverage
75%
Covered lines: 6
Uncovered lines: 2
Coverable lines: 8
Total lines: 45
Line coverage: 75%
Branch coverage
100%
Covered branches: 4
Total branches: 4
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
GetCountry(...)100%4475%

File(s)

https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.Geography/Extensions/CultureExtensions.cs

#LineLine coverage
 1// -----------------------------------------------------------------------
 2// <copyright file="CultureExtensions.cs" company="Stéphane ANDRE">
 3// Copyright (c) Stéphane ANDRE. All rights reserved.
 4// </copyright>
 5// -----------------------------------------------------------------------
 6
 7using System;
 8using System.Globalization;
 9using System.Linq;
 10
 11#pragma warning disable IDE0130 // Namespace does not match folder structure
 12namespace MyNet.Geography;
 13#pragma warning restore IDE0130 // Namespace does not match folder structure
 14
 15public static class CultureExtensions
 16{
 17    extension(CultureInfo culture)
 18    {
 19        /// <summary>
 20        /// Gets the country associated with the specified culture, if available.
 21        /// </summary>
 22        /// <returns>The country associated with the specified culture, or <c>null</c> if not available.</returns>
 23        public Country? GetCountry()
 24        {
 625            ArgumentNullException.ThrowIfNull(culture);
 26
 627            if (string.IsNullOrEmpty(culture.Name))
 228                return null;
 29
 30            try
 31            {
 432                var specificCulture = culture.IsNeutralCulture ? CultureInfo.CreateSpecificCulture(culture.Name) : cultu
 33
 434                var alpha2 = new RegionInfo(specificCulture.Name).TwoLetterISORegionName;
 35
 436                return Country.All.FirstOrDefault(c => string.Equals(c.Alpha2, alpha2, StringComparison.OrdinalIgnoreCas
 37            }
 038            catch (ArgumentException)
 39            {
 040                return null;
 41            }
 42        }
 43    }
 44}
 45