Files
elwig/Elwig/Models/Entities/WineQualLevel.cs

46 lines
1.4 KiB
C#

using Elwig.Helpers;
using Microsoft.EntityFrameworkCore;
using System;
using System.ComponentModel.DataAnnotations.Schema;
namespace Elwig.Models.Entities {
[Table("wine_quality_level"), PrimaryKey("QualId")]
public class WineQualLevel : IEquatable<WineQualLevel> {
[Column("qualid")]
public string QualId { get; private set; }
[Column("origin_level")]
public int? OriginLevel { get; private set; }
[Column("predicate")]
public bool IsPredicate { get; private set; }
[Column("min_kmw")]
public double? MinKmw { get; private set; }
[NotMapped]
public double? MinOe => MinKmw != null ? Utils.KmwToOe((double)MinKmw) : null;
[Column("name")]
public string Name { get; private set; }
public string MinKmwStr => (MinKmw == null) ? "" : $"(mind. {MinKmw:#.0}°)";
public override bool Equals(object? obj) {
return Equals(obj as WineQualLevel);
}
public bool Equals(WineQualLevel? obj) {
return QualId == obj?.QualId;
}
public static bool operator ==(WineQualLevel? q1, WineQualLevel? q2) {
return q1?.Equals(q2) ?? Equals(q1, q2);
}
public static bool operator !=(WineQualLevel? q1, WineQualLevel? q2) {
return !(q1?.Equals(q2) ?? Equals(q1, q2));
}
}
}