58 lines
2.1 KiB
C#
58 lines
2.1 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace QRRapidoApp.Models.Extensions
|
|
{
|
|
public static class PlanExtensions
|
|
{
|
|
public static string GetLocalizedName(this Plan plan, string languageCode)
|
|
{
|
|
if (plan.Name.TryGetValue(languageCode, out var name))
|
|
return name;
|
|
|
|
// Fallback to Portuguese if language not found
|
|
if (plan.Name.TryGetValue("pt-BR", out var ptName))
|
|
return ptName;
|
|
|
|
// Final fallback to first available language
|
|
return plan.Name.Values.FirstOrDefault() ?? "Plan";
|
|
}
|
|
|
|
public static string GetLocalizedDescription(this Plan plan, string languageCode)
|
|
{
|
|
if (plan.Description.TryGetValue(languageCode, out var description))
|
|
return description;
|
|
|
|
// Fallback to Portuguese if language not found
|
|
if (plan.Description.TryGetValue("pt-BR", out var ptDescription))
|
|
return ptDescription;
|
|
|
|
// Final fallback to first available language
|
|
return plan.Description.Values.FirstOrDefault() ?? "Premium plan description";
|
|
}
|
|
|
|
public static List<string> GetLocalizedFeatures(this Plan plan, string languageCode)
|
|
{
|
|
if (plan.Features.TryGetValue(languageCode, out var features))
|
|
return features;
|
|
|
|
// Fallback to Portuguese if language not found
|
|
if (plan.Features.TryGetValue("pt-BR", out var ptFeatures))
|
|
return ptFeatures;
|
|
|
|
// Final fallback to first available language
|
|
return plan.Features.Values.FirstOrDefault() ?? new List<string>();
|
|
}
|
|
|
|
public static string GetLanguageCode(string culture)
|
|
{
|
|
return culture switch
|
|
{
|
|
"pt-BR" or "pt" => "pt-BR",
|
|
"es" or "es-ES" => "es",
|
|
"en" or "en-US" => "en",
|
|
_ => "pt-BR" // Default to Portuguese
|
|
};
|
|
}
|
|
}
|
|
} |