51 lines
1.3 KiB
C#
51 lines
1.3 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using System;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
namespace Elwig.Models {
|
|
[Table("modifier"), PrimaryKey("Year", "ModId")]
|
|
public class Modifier {
|
|
[Column("year")]
|
|
public int Year { get; set; }
|
|
|
|
[Column("modid")]
|
|
public string ModId { get; set; }
|
|
|
|
[Column("name")]
|
|
public string Name { get; set; }
|
|
|
|
[Column("abs")]
|
|
public long? AbsValue { get; set; }
|
|
|
|
[NotMapped]
|
|
public decimal? Abs {
|
|
get {
|
|
return AbsValue != null ? Season.DecFromDb((long)AbsValue) : null;
|
|
}
|
|
set {
|
|
AbsValue = value != null ? Season.DecToDb((decimal)value) : null;
|
|
}
|
|
}
|
|
|
|
[Column("rel")]
|
|
public double? Rel { get; set; }
|
|
|
|
[Column("standard")]
|
|
public bool IsStandard { get; set; }
|
|
|
|
[Column("quick_select")]
|
|
public bool IsQuickSelect { get; set; }
|
|
|
|
[ForeignKey("Year")]
|
|
public virtual Season Season { get; private set; }
|
|
|
|
public string ValueStr => (Abs != null) ?
|
|
$"{(Abs < 0 ? " -" : "+")}{Math.Abs(Abs.Value)} {Season.Currency.Symbol}/kg" :
|
|
$"{(Rel < 0 ? " -" : "+")}{Math.Abs(Rel.Value):P2}";
|
|
|
|
public override string ToString() {
|
|
return Name;
|
|
}
|
|
}
|
|
}
|