hitting the performer

This commit is contained in:
Paul Schneider 2026-08-31 04:15:10 +01:00
commit 341b49cbfa
27 changed files with 1603 additions and 35 deletions

View file

@ -4,8 +4,10 @@ namespace Yavsc.Models.Haircut
{
public enum HairDressings {
[Display(Name="Coiffage")]
Coiffage,
[Display(Name="Brushing")]
Brushing,
[Display(Name="Mise en plis")]

View file

@ -1,12 +1,17 @@
using System.ComponentModel.DataAnnotations;
namespace Yavsc.Models.Haircut
{
public enum HairLength : int
{
[Display(Name="Cheveux mi-longs")]
HalfLong=0,
[Display(Name="Cheveux courts")]
Short=1,
[Display(Name="Cheveux longs")]
Long=2
}
}

View file

@ -1,5 +1,6 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Reflection;
using Newtonsoft.Json;
namespace Yavsc.Models.Haircut
@ -40,6 +41,41 @@ namespace Yavsc.Models.Haircut
[Display(Name="Soins")]
public bool Cares { get; set; }
public string GetDisplayTitle()
{
return $"{GetEnumDisplayName(Gender)} · {GetEnumDisplayName(Length)}";
}
public string GetDisplayDetails()
{
return string.Join(" · ", new[]
{
FormatFlag(nameof(Cut), Cut),
GetEnumDisplayName(Dressing),
GetEnumDisplayName(Tech),
FormatFlag(nameof(Shampoo), Shampoo),
FormatFlag(nameof(Cares), Cares),
});
}
private static string FormatFlag(string propertyName, bool enabled)
{
var label = GetPropertyDisplayName(propertyName);
return enabled ? label : $"Sans {label.ToLowerInvariant()}";
}
private static string GetPropertyDisplayName(string propertyName)
{
var property = typeof(HairPrestation).GetProperty(propertyName, BindingFlags.Public | BindingFlags.Instance);
return property?.GetCustomAttribute<DisplayAttribute>()?.GetName() ?? propertyName;
}
private static string GetEnumDisplayName<TEnum>(TEnum value) where TEnum : struct, Enum
{
var member = typeof(TEnum).GetMember(value.ToString()).FirstOrDefault();
return member?.GetCustomAttribute<DisplayAttribute>()?.GetName() ?? value.ToString();
}
}
public class HairTaintInstance {

View file

@ -11,12 +11,14 @@ namespace Yavsc.Models.Haircut
[Display(Name="Couleur")]
Color,
[Display(Name="Permantante")]
[Display(Name="Permanente")]
Permanent,
[Display(Name="Défrisage")]
Defris,
[Display(Name="Mêches")]
Mech,
[Display(Name="Balayage")]
Balayage
}
}