Skip to content

Instantly share code, notes, and snippets.

@trikitrok
Last active December 6, 2025 21:28
Show Gist options
  • Select an option

  • Save trikitrok/a50915da4d71506457c613a063169f96 to your computer and use it in GitHub Desktop.

Select an option

Save trikitrok/a50915da4d71506457c613a063169f96 to your computer and use it in GitHub Desktop.
public abstract class OpeningResult
{
public static OpeningResult Success(ClaimId claimId, ReferenceInCompany referenceInCompany)
{
return new SuccessfulOpeningResult(claimId, referenceInCompany);
}
public static OpeningResult Failure(ClaimId claimId, string description)
{
return new FailingOpeningResult(claimId, description);
}
public abstract void Notify(ClaimCompanyId claimCompanyId, OpeningListener openingListener);
private class SuccessfulOpeningResult(ClaimId claimId, ReferenceInCompany refenceInCompany) : OpeningResult
{
public override void Notify(ClaimCompanyId claimCompanyId, OpeningListener openingListener)
{
openingListener.OpeningSucceeded(
new OpeningSuccess(
refenceInCompany,
claimId,
claimCompanyId)
);
}
}
private class FailingOpeningResult(ClaimId claimId, string failureDescription) : OpeningResult
{
public override void Notify(ClaimCompanyId claimCompanyId, OpeningListener openingListener)
{
openingListener.OpeningFailed(
new OpeningFailure(
failureDescription, ,
claimId,
claimCompanyId)
);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment