//
// DO NOT EDIT: generated by fsdgencsharp
//
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using Facility.Core;
namespace OapApi.v1.Client
{
[System.CodeDom.Compiler.GeneratedCode("fsdgencsharp", "")]
[Newtonsoft.Json.JsonConverter(typeof(ApplicationStatusJsonConverter))]
[System.Text.Json.Serialization.JsonConverter(typeof(ApplicationStatusSystemTextJsonConverter))]
public partial struct ApplicationStatus : IEquatable
{
public static readonly ApplicationStatus InProgress = new ApplicationStatus(Strings.InProgress);
public static readonly ApplicationStatus Submitted = new ApplicationStatus(Strings.Submitted);
///
/// Creates an instance.
///
public ApplicationStatus(string value) => m_value = value;
///
/// Converts the instance to a string.
///
public override string ToString() => m_value != null && s_valueCache.TryGetValue(m_value, out var cachedValue) ? cachedValue : m_value ?? "";
///
/// Checks for equality.
///
public bool Equals(ApplicationStatus other) => StringComparer.OrdinalIgnoreCase.Equals(m_value ?? "", other.m_value ?? "");
///
/// Checks for equality.
///
public override bool Equals(object obj) => obj is ApplicationStatus && Equals((ApplicationStatus) obj);
///
/// Gets the hash code.
///
public override int GetHashCode() => StringComparer.OrdinalIgnoreCase.GetHashCode(m_value ?? "");
///
/// Checks for equality.
///
public static bool operator ==(ApplicationStatus left, ApplicationStatus right) => left.Equals(right);
///
/// Checks for inequality.
///
public static bool operator !=(ApplicationStatus left, ApplicationStatus right) => !left.Equals(right);
///
/// Returns true if the instance is equal to one of the defined values.
///
public bool IsDefined() => m_value != null && s_valueCache.ContainsKey(m_value);
///
/// Returns all of the defined values.
///
public static IReadOnlyList GetValues() => s_values;
///
/// Provides string constants for defined values.
///
public static class Strings
{
public const string InProgress = "InProgress";
public const string Submitted = "Submitted";
}
///
/// Used for serialization.
///
public sealed class ApplicationStatusJsonConverter : ServiceEnumJsonConverter
{
///
/// Creates the value from a string.
///
protected override ApplicationStatus CreateCore(string value) => new ApplicationStatus(value);
}
///
/// Used for serialization.
///
public sealed class ApplicationStatusSystemTextJsonConverter : ServiceEnumSystemTextJsonConverter
{
///
/// Creates the value from a string.
///
protected override ApplicationStatus CreateCore(string value) => new ApplicationStatus(value);
}
private static readonly ReadOnlyCollection s_values = new ReadOnlyCollection(
new[]
{
InProgress,
Submitted,
});
private static readonly IReadOnlyDictionary s_valueCache = new Dictionary(StringComparer.OrdinalIgnoreCase)
{
{ Strings.InProgress, Strings.InProgress },
{ Strings.Submitted, Strings.Submitted },
};
private readonly string m_value;
}
}