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

35 lines
1.2 KiB
C#
Raw Normal View History

using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace TournamentOrganizer.Models;
public class Tournament
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public int GameId { get; set; }
public int EventId { get; set; }
2026-04-10 15:56:45 +02:00
[CustomValidation(typeof(Tournament), nameof(ValidateDates))]
public DateTime Start { get; set; }
2026-04-10 15:56:45 +02:00
[CustomValidation(typeof(Tournament), nameof(ValidateDates))]
public DateTime End { get; set; }
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; }
public required Game Game { get; set; }
public required Event Event { get; set; }
2026-04-10 15:56:45 +02:00
public static ValidationResult ValidateDates(DateTime date, ValidationContext context)
{
Tournament instance = (Tournament)context.ObjectInstance;
if (date >= instance.Event.Start && date <= instance.Event.End)
return ValidationResult.Success;
return new("Tournament must take place during the event.");
}
}