71 lines
2.1 KiB
C#
71 lines
2.1 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
namespace Hcs.WebApp.Data.Hcs
|
|
{
|
|
public class Operation
|
|
{
|
|
public enum OperationType
|
|
{
|
|
[Display(Description = "Экспорт общего справочника")]
|
|
NsiCommon_ExportNsiItem_15_7_0_1,
|
|
|
|
[Display(Description = "Экспорт частного справочника")]
|
|
Nsi_ExportNsiItem_15_7_0_1,
|
|
|
|
[Display(Description = "Парсинг данных домов")]
|
|
ParseHousesData_15_7_0_1,
|
|
|
|
[Display(Description = "Экспорт договоров ресурсоснабжения")]
|
|
HouseManagement_ExportSupplyResourceContractData_15_7_0_1,
|
|
}
|
|
|
|
public enum OperationKind
|
|
{
|
|
Remote,
|
|
Parse
|
|
}
|
|
|
|
public int Id { get; set; }
|
|
|
|
public int CampaignId { get; set; }
|
|
|
|
public virtual Campaign Campaign { get; set; } = null!;
|
|
|
|
public OperationType Type { get; set; }
|
|
|
|
public DateTime CreatedAt { get; set; }
|
|
|
|
public DateTime? StartedAt { get; set; }
|
|
|
|
public DateTime? EndedAt { get; set; }
|
|
|
|
public string? MessageGuid { get; set; }
|
|
|
|
public string? ExportGuid { get; set; }
|
|
|
|
public string? FailureReason { get; set; }
|
|
|
|
public virtual ICollection<Registry> Registries { get; set; } = [];
|
|
|
|
public virtual ICollection<House> Houses { get; set; } = [];
|
|
|
|
public virtual ICollection<FileToParse> FilesToParse { get; set; } = [];
|
|
|
|
public virtual ICollection<SupplyContract> SupplyContracts { get; set; } = [];
|
|
|
|
[NotMapped]
|
|
public bool Completed => EndedAt.HasValue;
|
|
|
|
[NotMapped]
|
|
public OperationKind Kind => Type switch
|
|
{
|
|
OperationType.NsiCommon_ExportNsiItem_15_7_0_1 or
|
|
OperationType.Nsi_ExportNsiItem_15_7_0_1 or
|
|
OperationType.HouseManagement_ExportSupplyResourceContractData_15_7_0_1 => OperationKind.Remote,
|
|
|
|
OperationType.ParseHousesData_15_7_0_1 => OperationKind.Parse
|
|
};
|
|
}
|
|
}
|