feat: Добавлены таблицы и сервисы для логирования работы робота. Обновлена таблица templates.

This commit is contained in:
Mikhail Trubnikov
2023-10-03 14:30:54 +10:00
parent e2b1caefe3
commit c32bc74a2c
24 changed files with 4466 additions and 28 deletions

View File

@@ -0,0 +1,23 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace PARR.DAL.Models
{
/// <summary>
/// Уровень логов работы робота
/// </summary>
[Table("RobotHistoryLevels")]
public class RobotHistoryLevel
{
[Key]
public int Level { get; set; }
public required string Name { get; set; }
public required string Description { get; set; }
public ICollection<RobotTemplateHistory> robotTemplateHistories { get; set; } = new HashSet<RobotTemplateHistory>();
}
}

View File

@@ -0,0 +1,23 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace PARR.DAL.Models
{
/// <summary>
/// Статус работы робота
/// </summary>
[Table("RobotStatuses")]
public class RobotStatus
{
[Key]
public int Code { get; set; }
[Required]
public string Name { get; set; } = string.Empty;
[Required]
public string Description { get; set; } = string.Empty;
public ICollection<Template> Templates { get; set; } = new HashSet<Template>();
}
}

View File

@@ -0,0 +1,46 @@
using PARR.DAL.Models.Base;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace PARR.DAL.Models
{
/// <summary>
/// История работы робота по управлению шаблонами в ЕСПП
/// </summary>
[Table("RobotTemplateHistories")]
public class RobotTemplateHistory : IBase
{
[Key]
public Guid Id { get; set; }
public DateTimeOffset DateCreated { get; set; }
[NotMapped]
public DateTimeOffset? DateModified { get; set; }
public int HistoryLevel { get; set; }
public string? RobotMessage { get; set; }
public string? EsppMessage { get; set; }
public Guid TemplateId { get; set; }
public int TemplateStatusCode { get; set; }
/// <summary>
/// Уникальный идентификатор серии выполнения, нужен для сопоставления истории
/// </summary>
public Guid IdSeries { get; set; }
[ForeignKey(nameof(HistoryLevel))]
public RobotHistoryLevel? RobotHistoryLevel { get; set; }
[ForeignKey(nameof(TemplateId))]
public Template? Template { get; set; }
[ForeignKey(nameof(TemplateStatusCode))]
public StatusTemplate? StatusTemplate { get; set; }
}
}

View File

@@ -3,6 +3,9 @@ using System.ComponentModel.DataAnnotations.Schema;
namespace PARR.DAL.Models
{
/// <summary>
/// Статус шаблона. Что нужно сделать роботу в ЕСПП
/// </summary>
[Table("StatusTemplates")]
public class StatusTemplate
{
@@ -16,5 +19,7 @@ namespace PARR.DAL.Models
public string Description { get; set; } = string.Empty;
public ICollection<Template> Templates { get; set; } = new HashSet<Template>();
public ICollection<RobotTemplateHistory> RobotTemplateHistories { get; set; } = new HashSet<RobotTemplateHistory>();
}
}

View File

@@ -20,8 +20,26 @@ namespace PARR.DAL.Models
public bool IsActive { get; set; }
/// <summary>
/// Статус шаблона. Что нужно сделать роботу в ЕСПП
/// </summary>
public int StatusCode { get; set; }
/// <summary>
/// Статус работы робота
/// </summary>
public int RobotStatusCode { get; set; }
/// <summary>
/// Количество попыток выполнения задания роботом
/// </summary>
public int RobotAttemptsNumber { get; set; }
/// <summary>
/// Последняя дата обновления статуса RobotStatusCode роботом
/// </summary>
public DateTimeOffset RobotLastStatusUpdated { get; set; }
[ForeignKey(nameof(StatusCode))]
public StatusTemplate? StatusTemplate { get; set; }
@@ -38,5 +56,11 @@ namespace PARR.DAL.Models
[ForeignKey(nameof(HostId))]
public Host? Host { get; set; }
[ForeignKey(nameof(RobotStatusCode))]
public RobotStatus? RobotStatus { get; set; }
public ICollection<RobotTemplateHistory> RobotTemplateHistories { get; set; } = new HashSet<RobotTemplateHistory>();
}
}