public static Color?GetEggColor(this Raid raid) { switch (raid.RaidBossLevel) { case 1: case 2: return(Color.FromArgb(249, 125, 150)); case 3: case 4: return(Color.FromArgb(255, 200, 35)); case 5: return(Color.FromArgb(22, 55, 72)); default: return(null); } }
public static StringBuilder GetTitle(this Raid raid, StringBuilder title = null, bool extended = true) { title ??= new StringBuilder(); if (title.Length == 0) { title .AppendFormat("[R{0}] ", raid.RaidBossLevel) .Append(raid.Name); } if (raid.EndTime is { } endTime) { title.Append($" ∙ {endTime:t}"); if (raid.IsEgg && extended) { title.Append($"→{raid.RaidBossEndTime:t}"); } } return(title); }
public static DateTimeOffset?GetDefaultPollTime(this Raid raid) => raid.RaidBossEndTime? .Subtract(TimeSpan.FromMinutes(15)) // default offset to the end .Round(TimeSpan.FromMinutes(5)); // rounding
public static string GetLink(this Raid raid, IUrlHelper urlHelper) { return(urlHelper.Page("/Raid", null, new { raidId = raid.Id }, protocol: "https")); }
public static async Task <((decimal?lat, decimal?lon) location, string gym, string distance)> SetTitleAndDescription(this Raid raid, StringBuilder title, StringBuilder description, GymHelper gymHelper, int?precision = null, MidpointRounding?rounding = null, CancellationToken cancellationToken = default) { var gymInfo = await gymHelper.ProcessGym(raid.SetTitle(title), description, precision, rounding, cancellationToken); if (description.Length > 0) { raid.Description = description.ToString(); } return(gymInfo); }
public static Raid SetTitle(this Raid raid, StringBuilder title, bool extended = true) { raid.Title = raid.GetTitle(title, extended).ToString(); return(raid); }