using System; namespace cwebplusApp.Shared.Models { public abstract class ReportRepositoryItem { public enum Type { FOUND, MISSING } public enum State { PENDING, TRANSMITTED } private long id; private string serverRefNbr; private State status; private Type reportType; public long ID { get => id; set => id = value; } public string ServerRefNbr { get => serverRefNbr; set => serverRefNbr = value; } public State Status { get => status; set => status = value; } public Type ReportType { get => reportType; set => reportType = value; } public ReportRepositoryItem(Type _reportType, long? identifier) { this.id = identifier.HasValue ? identifier.Value : 0; this.reportType = _reportType; this.status = State.PENDING; } public override bool Equals(Object obj) { if ((obj == null) || !this.GetType().Equals(obj.GetType())) { return false; } else { ReportRepositoryItem rri = (ReportRepositoryItem)obj; return (ID == rri.ID); } } public override int GetHashCode() { return base.GetHashCode(); } public override string ToString() { return base.ToString(); } public abstract Report GetReport(); } }