Files
BCSH1-TournamentApp/TournamentOrganizer/Models/Game.cs
T

52 lines
1.4 KiB
C#
Raw Normal View History

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace TournamentOrganizer.Models;
public enum RuleSet
{
DoubleElimination,
SingleElimination,
RoundRobin,
Swiss
}
2026-05-06 10:19:19 +02:00
public static class RuleSetExtensions
{
public static string ToDisplayName(this RuleSet ruleSet) => ruleSet switch
{
RuleSet.DoubleElimination => "Double Elimination",
RuleSet.SingleElimination => "Single Elimination",
RuleSet.RoundRobin => "Round Robin",
RuleSet.Swiss => "Swiss",
_ => ruleSet.ToString()
};
public static RuleSet? FromDisplayName(string? displayName) => displayName switch
{
"Double Elimination" => RuleSet.DoubleElimination,
"Single Elimination" => RuleSet.SingleElimination,
"Round Robin" => RuleSet.RoundRobin,
"Swiss" => RuleSet.Swiss,
_ => null
};
}
public class Game
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Name { get; set; } = "Example Game";
public string Description { get; set; } = "Example Game Description";
public RuleSet S1RuleSet { get; set; }
2026-04-09 12:08:52 +02:00
public int? S1Groups { get; set; }
public int? S1GroupAdvances { get; set; }
public RuleSet? S2RuleSet { get; set; }
2026-05-06 13:28:10 +02:00
public List<Tournament> Tournaments { get; set; } = [];
}