private static string GetMessageForExType(MyExceptionType type, object entity) { return(type switch { MyExceptionType.DoesNotExistInDatabase => $"Entity {entity} doesn't exist in the database", MyExceptionType.DeserializedToNull => $"Recieved {entity} couldn't be deserialized correctly", MyExceptionType.NegativeTakeArgument => $"Take must be >= 0, but it is {entity}", MyExceptionType.NegativeSkipArgument => $"Skip must be >= 0, but it is {entity}", _ => throw new NotImplementedException("Not all MyExceptionType variants are implemented"), });
public MyException(MyExceptionType type, object entity) : base(GetMessageForExType(type, entity)) { this.ExType = type; }