Files
Dhananjaya99 bffc9b1686 first commit
2026-09-28 11:44:26 +05:30

50 lines
1.7 KiB
C#

using System.Text.Json;
namespace Fitness_core_BE.Helpers
{
public record EquipmentCount(string Name, int Count);
public class GymFacilitiesData
{
public bool HasAc { get; set; }
public List<EquipmentCount> Equipment { get; set; } = new();
}
public static class GymFacilities
{
private static readonly JsonSerializerOptions Opts = new(JsonSerializerDefaults.Web);
public static GymFacilitiesData Parse(string? facilities)
{
if (string.IsNullOrWhiteSpace(facilities)) return new GymFacilitiesData();
try
{
return JsonSerializer.Deserialize<GymFacilitiesData>(facilities, Opts) ?? new GymFacilitiesData();
}
catch (JsonException)
{
// Older records may hold plain-text facilities — treat as no structured data.
return new GymFacilitiesData();
}
}
public static string Serialize(bool hasAc, IEnumerable<EquipmentCount>? equipment)
{
var data = new GymFacilitiesData
{
HasAc = hasAc,
Equipment = (equipment ?? Enumerable.Empty<EquipmentCount>())
.Where(e => !string.IsNullOrWhiteSpace(e.Name))
.GroupBy(e => e.Name.Trim(), StringComparer.OrdinalIgnoreCase)
.Select(group => new EquipmentCount(
group.First().Name.Trim(),
(int)Math.Min(
group.Sum(item => Math.Max(0L, item.Count)),
int.MaxValue)))
.ToList()
};
return JsonSerializer.Serialize(data, Opts);
}
}
}