using System.ComponentModel.DataAnnotations; namespace Lieb.Models.GuildWars2.Raid { public class Raid : RaidBase { public int RaidId { get; private set; } [Required] public DateTimeOffset StartTimeUTC { get; set; } = DateTime.Now; [Required] public DateTimeOffset EndTimeUTC { get; set; } public DateTimeOffset FreeForAllTimeUTC { get; set; } public ICollection SignUps { get; set; } = new HashSet(); public ICollection RaidLogs { get; set; } = new HashSet(); public Raid() { } public Raid(RaidTemplate template) : base(template) { TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById(template.TimeZone); StartTimeUTC = TimeZoneInfo.ConvertTimeToUtc(template.StartTime, timeZone); EndTimeUTC = TimeZoneInfo.ConvertTimeToUtc(template.EndTime, timeZone); FreeForAllTimeUTC = TimeZoneInfo.ConvertTimeToUtc(template.FreeForAllTime, timeZone); } } }