Files
monorepo/LCU.API.Collections.RepoApi-old/LCU.API.Collections.RepoApi/Services/StatusService.cs
T
2026-04-20 14:47:24 -05:00

37 lines
1.6 KiB
C#

using LCU.API.Collections.CollectionsApiLib.Models;
using LCU.API.Collections.RepoApi.Exceptions;
using Serilog;
namespace LCU.API.Collections.RepoApi.Services
{
public class StatusService
{
/**
* Convert a Stage from a case to a RepoAccount status.
*/
public static string ConvertStatus(RepoStatus oldStage)
{
switch (oldStage)
{
case RepoStatus.PSKP: return "PSKP";
case RepoStatus.REHO: return "REHO";
case RepoStatus.RECA: return "RECA";
case RepoStatus.O4R: return "O4R";
case RepoStatus.REPO: return "REPO";
case RepoStatus.REDEEMED: return "REDEEMED";
case RepoStatus.SOLD: return "SOLD";
case RepoStatus.NOTACTIVE: return "SOLD";
case RepoStatus.INELIGIBLE: throw new IneligibleAccountException("CaseStage", "Not a Repo Case Stage.");
// case RepoStatus.UNKNOWN is meant to fall through to below.
}
Log.Fatal($"Attempt to convert status {oldStage}, but was not known.");
// The account is not necessarily ineligible, but is missing a requirement, the stage.
// This covers the problem of Temenos not providing a Case Stage Change event, and only
// a Case Creation event. The stage won't be available yet, so throw a MissingRequirement
// causing it to be retried on the hour - it should then run fine.
throw new MissingRequirementException("Case Stage", $"A valid case stage is required, {oldStage} is not valid.");
}
}
}