forked from ddrilling/AsbCloudServer
Enable nullable on Telemetry*
This commit is contained in:
parent
02a8db1a58
commit
09d0d42688
@ -1,5 +1,6 @@
|
||||
namespace AsbCloudApp.Data.SAUB
|
||||
{
|
||||
#nullable enable
|
||||
/// <summary>
|
||||
/// Описание шаблона события панели оператора
|
||||
/// </summary>
|
||||
@ -13,7 +14,7 @@
|
||||
/// <summary>
|
||||
/// шаблон текста сообщения
|
||||
/// </summary>
|
||||
public string Message { get; set; }
|
||||
public string Message { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// id категории события
|
||||
@ -23,7 +24,7 @@
|
||||
/// <summary>
|
||||
/// переменная сервера обмена информацией с полевым оборудованием
|
||||
/// </summary>
|
||||
public string Tag { get; set; }
|
||||
public string Tag { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// тип определения наступления события
|
||||
|
@ -1,5 +1,5 @@
|
||||
using System;
|
||||
|
||||
#nullable enable
|
||||
namespace AsbCloudApp.Data.SAUB
|
||||
{
|
||||
/// <summary>
|
||||
@ -42,7 +42,7 @@ namespace AsbCloudApp.Data.SAUB
|
||||
/// <summary>
|
||||
/// telemetry user
|
||||
/// </summary>
|
||||
public string User { get; set; }
|
||||
public string? User { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Глубина забоя
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
namespace AsbCloudApp.Data.SAUB
|
||||
{
|
||||
#nullable enable
|
||||
/// <summary>
|
||||
/// общая информация о панели оператора
|
||||
/// </summary>
|
||||
@ -15,7 +16,7 @@ namespace AsbCloudApp.Data.SAUB
|
||||
/// <summary>
|
||||
/// идентификатор временной зоны
|
||||
/// </summary>
|
||||
public string TimeZoneId { get; set; }
|
||||
public string? TimeZoneId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// смещение в часах относительно UTC
|
||||
@ -25,41 +26,41 @@ namespace AsbCloudApp.Data.SAUB
|
||||
/// <summary>
|
||||
/// название скважины
|
||||
/// </summary>
|
||||
public string Well { get; set; }
|
||||
public string Well { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// название куста
|
||||
/// </summary>
|
||||
public string Cluster { get; set; }
|
||||
public string Cluster { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// название месторождения
|
||||
/// </summary>
|
||||
public string Deposit { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// название заказчика
|
||||
/// </summary>
|
||||
public string Customer { get; set; }
|
||||
public string? Customer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// название месторождения
|
||||
/// </summary>
|
||||
public string Deposit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// версия ПО панели оператора
|
||||
/// </summary>
|
||||
public string HmiVersion { get; set; }
|
||||
public string? HmiVersion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// версия ПО ПЛК САУБ
|
||||
/// </summary>
|
||||
public string SaubPlcVersion { get; set; }
|
||||
public string? SaubPlcVersion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// версия ПО ПЛК Спин мастер
|
||||
/// </summary>
|
||||
public string SpinPlcVersion { get; set; }
|
||||
public string? SpinPlcVersion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// комментарий
|
||||
/// </summary>
|
||||
public string Comment { get; set; }
|
||||
public string? Comment { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
namespace AsbCloudApp.Data.SAUB
|
||||
{
|
||||
#nullable enable
|
||||
/// <summary>
|
||||
/// Сообщение получаемое от телеметрии с буровой
|
||||
/// </summary>
|
||||
@ -35,21 +36,21 @@ namespace AsbCloudApp.Data.SAUB
|
||||
/// <summary>
|
||||
/// аргумент №0 для подстановки в шаблон сообщения
|
||||
/// </summary>
|
||||
public string Arg0 { get; set; }
|
||||
public string? Arg0 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// аргумент №1 для подстановки в шаблон сообщения
|
||||
/// </summary>
|
||||
public string Arg1 { get; set; }
|
||||
public string? Arg1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// аргумент №2 для подстановки в шаблон сообщения
|
||||
/// </summary>
|
||||
public string Arg2 { get; set; }
|
||||
public string? Arg2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// аргумент №3 для подстановки в шаблон сообщения
|
||||
/// </summary>
|
||||
public string Arg3 { get; set; }
|
||||
public string? Arg3 { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
namespace AsbCloudApp.Data.SAUB
|
||||
{
|
||||
#nullable enable
|
||||
/// <summary>
|
||||
/// Пользователь панели оператора
|
||||
/// </summary>
|
||||
@ -11,22 +12,22 @@
|
||||
/// <summary>
|
||||
/// Имя
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Фамилия
|
||||
/// </summary>
|
||||
public string Surname { get; set; }
|
||||
public string Surname { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Отчество
|
||||
/// </summary>
|
||||
public string Patronymic { get; set; }
|
||||
public string? Patronymic { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Уровень доступа
|
||||
/// </summary>
|
||||
public int Level { get; set; }
|
||||
public int? Level { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Собрать отображаемое имя пользователя
|
||||
|
7027
AsbCloudDb/Migrations/20230220095933_Enable_nullable_on_telemetry_.Designer.cs
generated
Normal file
7027
AsbCloudDb/Migrations/20230220095933_Enable_nullable_on_telemetry_.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,124 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace AsbCloudDb.Migrations
|
||||
{
|
||||
public partial class Enable_nullable_on_telemetry_ : Migration
|
||||
{
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.Sql("update t_telemetry set timezone = '{\"Hours\": 5}' where timezone is null;");
|
||||
migrationBuilder.Sql("update t_telemetry set info = '{}' where info is null;");
|
||||
|
||||
migrationBuilder.AlterColumn<string>(
|
||||
name: "surname",
|
||||
table: "t_telemetry_user",
|
||||
type: "character varying(255)",
|
||||
maxLength: 255,
|
||||
nullable: false,
|
||||
defaultValue: "",
|
||||
oldClrType: typeof(string),
|
||||
oldType: "character varying(255)",
|
||||
oldMaxLength: 255,
|
||||
oldNullable: true);
|
||||
|
||||
migrationBuilder.AlterColumn<string>(
|
||||
name: "message_template",
|
||||
table: "t_telemetry_event",
|
||||
type: "text",
|
||||
nullable: false,
|
||||
defaultValue: "",
|
||||
oldClrType: typeof(string),
|
||||
oldType: "text",
|
||||
oldNullable: true);
|
||||
|
||||
migrationBuilder.AlterColumn<string>(
|
||||
name: "timezone",
|
||||
table: "t_telemetry",
|
||||
type: "jsonb",
|
||||
nullable: false,
|
||||
defaultValue: "{\"Hours\": 5}",
|
||||
comment: "Смещение часового пояса от UTC",
|
||||
oldClrType: typeof(string),
|
||||
oldType: "jsonb",
|
||||
oldNullable: true,
|
||||
oldComment: "Смещение часового пояса от UTC");
|
||||
|
||||
migrationBuilder.AlterColumn<string>(
|
||||
name: "remote_uid",
|
||||
table: "t_telemetry",
|
||||
type: "text",
|
||||
nullable: false,
|
||||
defaultValue: "",
|
||||
comment: "Идентификатор передающего устройства. Может повторяться в списке, так как комплекты оборудования переезжают от скв. к скв.",
|
||||
oldClrType: typeof(string),
|
||||
oldType: "text",
|
||||
oldNullable: true,
|
||||
oldComment: "Идентификатор передающего устройства. Может повторяться в списке, так как комплекты оборудования переезжают от скв. к скв.");
|
||||
|
||||
migrationBuilder.AlterColumn<string>(
|
||||
name: "info",
|
||||
table: "t_telemetry",
|
||||
type: "jsonb",
|
||||
nullable: false,
|
||||
defaultValue: "{}",
|
||||
comment: "Информация с панели о скважине",
|
||||
oldClrType: typeof(string),
|
||||
oldType: "jsonb",
|
||||
oldNullable: true,
|
||||
oldComment: "Информация с панели о скважине");
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AlterColumn<string>(
|
||||
name: "surname",
|
||||
table: "t_telemetry_user",
|
||||
type: "character varying(255)",
|
||||
maxLength: 255,
|
||||
nullable: true,
|
||||
oldClrType: typeof(string),
|
||||
oldType: "character varying(255)",
|
||||
oldMaxLength: 255);
|
||||
|
||||
migrationBuilder.AlterColumn<string>(
|
||||
name: "message_template",
|
||||
table: "t_telemetry_event",
|
||||
type: "text",
|
||||
nullable: true,
|
||||
oldClrType: typeof(string),
|
||||
oldType: "text");
|
||||
|
||||
migrationBuilder.AlterColumn<string>(
|
||||
name: "timezone",
|
||||
table: "t_telemetry",
|
||||
type: "jsonb",
|
||||
nullable: true,
|
||||
comment: "Смещение часового пояса от UTC",
|
||||
oldClrType: typeof(string),
|
||||
oldType: "jsonb",
|
||||
oldComment: "Смещение часового пояса от UTC");
|
||||
|
||||
migrationBuilder.AlterColumn<string>(
|
||||
name: "remote_uid",
|
||||
table: "t_telemetry",
|
||||
type: "text",
|
||||
nullable: true,
|
||||
comment: "Идентификатор передающего устройства. Может повторяться в списке, так как комплекты оборудования переезжают от скв. к скв.",
|
||||
oldClrType: typeof(string),
|
||||
oldType: "text",
|
||||
oldComment: "Идентификатор передающего устройства. Может повторяться в списке, так как комплекты оборудования переезжают от скв. к скв.");
|
||||
|
||||
migrationBuilder.AlterColumn<string>(
|
||||
name: "info",
|
||||
table: "t_telemetry",
|
||||
type: "jsonb",
|
||||
nullable: true,
|
||||
comment: "Информация с панели о скважине",
|
||||
oldClrType: typeof(string),
|
||||
oldType: "jsonb",
|
||||
oldComment: "Информация с панели о скважине");
|
||||
}
|
||||
}
|
||||
}
|
@ -3300,16 +3300,19 @@ namespace AsbCloudDb.Migrations
|
||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<string>("Info")
|
||||
.IsRequired()
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("info")
|
||||
.HasComment("Информация с панели о скважине");
|
||||
|
||||
b.Property<string>("RemoteUid")
|
||||
.IsRequired()
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("remote_uid")
|
||||
.HasComment("Идентификатор передающего устройства. Может повторяться в списке, так как комплекты оборудования переезжают от скв. к скв.");
|
||||
|
||||
b.Property<string>("TimeZone")
|
||||
.IsRequired()
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("timezone")
|
||||
.HasComment("Смещение часового пояса от UTC");
|
||||
@ -3638,6 +3641,7 @@ namespace AsbCloudDb.Migrations
|
||||
.HasColumnName("id_category");
|
||||
|
||||
b.Property<string>("MessageTemplate")
|
||||
.IsRequired()
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("message_template");
|
||||
|
||||
@ -3733,6 +3737,7 @@ namespace AsbCloudDb.Migrations
|
||||
.HasColumnName("patronymic");
|
||||
|
||||
b.Property<string>("Surname")
|
||||
.IsRequired()
|
||||
.HasMaxLength(255)
|
||||
.HasColumnType("character varying(255)")
|
||||
.HasColumnName("surname");
|
||||
|
@ -3,50 +3,41 @@ using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace AsbCloudDb.Model
|
||||
{
|
||||
[Table("t_telemetry"), Comment("таблица привязки телеметрии от комплектов к конкретной скважине.")]
|
||||
[Index(nameof(RemoteUid), Name = "t_telemetry_remote_uid_index")]
|
||||
public partial class Telemetry : IId
|
||||
{
|
||||
public Telemetry()
|
||||
{
|
||||
DataSaub = new HashSet<TelemetryDataSaub>();
|
||||
Messages = new HashSet<TelemetryMessage>();
|
||||
}
|
||||
|
||||
[Key]
|
||||
[Column("id")]
|
||||
public int Id { get; set; }
|
||||
|
||||
[Column("remote_uid"), Comment("Идентификатор передающего устройства. Может повторяться в списке, так как комплекты оборудования переезжают от скв. к скв.")]
|
||||
public string RemoteUid { get; set; }
|
||||
public string RemoteUid { get; set; } = null!;
|
||||
|
||||
[Column("info", TypeName = "jsonb"), Comment("Информация с панели о скважине")]
|
||||
public TelemetryInfo Info { get; set; }
|
||||
public TelemetryInfo Info { get; set; } = new();
|
||||
|
||||
[Column("timezone", TypeName = "jsonb"), Comment("Смещение часового пояса от UTC")]
|
||||
public SimpleTimezone TimeZone { get; set; }
|
||||
public SimpleTimezone TimeZone { get; set; } = null!;
|
||||
|
||||
[InverseProperty(nameof(Model.Well.Telemetry))]
|
||||
public virtual Well Well { get; set; }
|
||||
public virtual Well? Well { get; set; }
|
||||
|
||||
[InverseProperty(nameof(TelemetryDataSaub.Telemetry))]
|
||||
public virtual ICollection<TelemetryDataSaub> DataSaub { get; set; }
|
||||
public virtual ICollection<TelemetryDataSaub> DataSaub { get; set; } = null!;
|
||||
|
||||
[InverseProperty(nameof(TelemetryDataSpin.Telemetry))]
|
||||
public virtual ICollection<TelemetryDataSpin> DataSpin { get; set; }
|
||||
public virtual ICollection<TelemetryDataSpin> DataSpin { get; set; } = null!;
|
||||
|
||||
[InverseProperty(nameof(TelemetryMessage.Telemetry))]
|
||||
public virtual ICollection<TelemetryMessage> Messages { get; set; }
|
||||
public virtual ICollection<TelemetryMessage> Messages { get; set; } = null!;
|
||||
|
||||
[InverseProperty(nameof(TelemetryUser.Telemetry))]
|
||||
public virtual ICollection<TelemetryUser> Users { get; set; }
|
||||
public virtual ICollection<TelemetryUser> Users { get; set; } = null!;
|
||||
|
||||
[InverseProperty(nameof(TelemetryEvent.Telemetry))]
|
||||
public virtual ICollection<TelemetryEvent> Events { get; set; }
|
||||
|
||||
public virtual ICollection<TelemetryEvent> Events { get; set; } = null!;
|
||||
}
|
||||
}
|
||||
|
@ -3,8 +3,6 @@ using System;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace AsbCloudDb.Model
|
||||
{
|
||||
[Table("t_telemetry_data_saub"), Comment("набор основных данных по SAUB")]
|
||||
@ -130,9 +128,6 @@ namespace AsbCloudDb.Model
|
||||
[JsonIgnore]
|
||||
[ForeignKey(nameof(IdTelemetry))]
|
||||
[InverseProperty(nameof(Model.Telemetry.DataSaub))]
|
||||
public virtual Telemetry Telemetry { get; set; }
|
||||
|
||||
public virtual Telemetry Telemetry { get; set; } = null!;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,6 @@ using System.Text.Json.Serialization;
|
||||
|
||||
namespace AsbCloudDb.Model
|
||||
{
|
||||
#nullable disable
|
||||
[Table("t_telemetry_data_spin"), Comment("набор основных данных по SpinMaster")]
|
||||
public class TelemetryDataSpin : ITelemetryData
|
||||
{
|
||||
@ -48,7 +47,6 @@ namespace AsbCloudDb.Model
|
||||
[JsonIgnore]
|
||||
[ForeignKey(nameof(IdTelemetry))]
|
||||
[InverseProperty(nameof(Model.Telemetry.DataSpin))]
|
||||
public virtual Telemetry Telemetry { get; set; }
|
||||
public virtual Telemetry Telemetry { get; set; } = null!;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2,8 +2,6 @@
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace AsbCloudDb.Model
|
||||
{
|
||||
[Table("t_telemetry_event"), Comment("Справочник событий. События формируют сообщения. Разделено по версиям посылок от телеметрии.")]
|
||||
@ -18,17 +16,17 @@ namespace AsbCloudDb.Model
|
||||
[JsonIgnore]
|
||||
[ForeignKey(nameof(IdTelemetry))]
|
||||
[InverseProperty(nameof(Model.Telemetry.Events))]
|
||||
public virtual Telemetry Telemetry { get; set; }
|
||||
public virtual Telemetry Telemetry { get; set; } = null!;
|
||||
|
||||
[Column("id_category")]
|
||||
public int IdCategory { get; set; }
|
||||
|
||||
[Column("message_template")]
|
||||
public string MessageTemplate { get; set; }
|
||||
public string MessageTemplate { get; set; } = string.Empty;
|
||||
|
||||
public string MakeMessageText(TelemetryMessage message)
|
||||
{
|
||||
var args = new string[] { message.Arg0, message.Arg1, message.Arg2, message.Arg3 };
|
||||
var args = new string?[] { message.Arg0, message.Arg1, message.Arg2, message.Arg3 };
|
||||
return string.Format(MessageTemplate, args);
|
||||
}
|
||||
}
|
||||
|
@ -2,20 +2,18 @@
|
||||
|
||||
namespace AsbCloudDb.Model
|
||||
{
|
||||
#nullable disable
|
||||
public class TelemetryInfo
|
||||
{
|
||||
public DateTimeOffset DrillingStartDate { get; set; }
|
||||
public string TimeZoneId { get; set; }
|
||||
public string? TimeZoneId { get; set; }
|
||||
public double TimeZoneOffsetTotalHours { get; set; }
|
||||
public string Well { get; set; }
|
||||
public string Cluster { get; set; }
|
||||
public string Customer { get; set; }
|
||||
public string Deposit { get; set; }
|
||||
public string HmiVersion { get; set; }
|
||||
public string SaubPlcVersion { get; set; }
|
||||
public string SpinPlcVersion { get; set; }
|
||||
public string Comment { get; set; }
|
||||
public string Well { get; set; } = string.Empty;
|
||||
public string Cluster { get; set; } = string.Empty;
|
||||
public string Deposit { get; set; } = string.Empty;
|
||||
public string? Customer { get; set; }
|
||||
public string? HmiVersion { get; set; }
|
||||
public string? SaubPlcVersion { get; set; }
|
||||
public string? SpinPlcVersion { get; set; }
|
||||
public string? Comment { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -3,8 +3,6 @@ using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace AsbCloudDb.Model
|
||||
{
|
||||
[Table("t_telemetry_message"), Comment("Сообщения на буровых")]
|
||||
@ -31,22 +29,22 @@ namespace AsbCloudDb.Model
|
||||
|
||||
[Column("arg0"), Comment("Аргумент №0 для вставки в шаблон сообщения")]
|
||||
[StringLength(255)]
|
||||
public string Arg0 { get; set; }
|
||||
public string? Arg0 { get; set; }
|
||||
|
||||
[Column("arg1")]
|
||||
[StringLength(255)]
|
||||
public string Arg1 { get; set; }
|
||||
public string? Arg1 { get; set; }
|
||||
|
||||
[Column("arg2")]
|
||||
[StringLength(255)]
|
||||
public string Arg2 { get; set; }
|
||||
public string? Arg2 { get; set; }
|
||||
|
||||
[Column("arg3")]
|
||||
[StringLength(255)]
|
||||
public string Arg3 { get; set; }
|
||||
public string? Arg3 { get; set; }
|
||||
|
||||
[ForeignKey(nameof(IdTelemetry))]
|
||||
[InverseProperty(nameof(Model.Telemetry.Messages))]
|
||||
public virtual Telemetry Telemetry { get; set; }
|
||||
public virtual Telemetry Telemetry { get; set; } = null!;
|
||||
}
|
||||
}
|
||||
|
@ -3,8 +3,6 @@ using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace AsbCloudDb.Model
|
||||
{
|
||||
[Table("t_telemetry_user"), Comment("Пользователи панели САУБ. Для сообщений.")]
|
||||
@ -19,19 +17,19 @@ namespace AsbCloudDb.Model
|
||||
[JsonIgnore]
|
||||
[ForeignKey(nameof(IdTelemetry))]
|
||||
[InverseProperty(nameof(Model.Telemetry.Users))]
|
||||
public virtual Telemetry Telemetry { get; set; }
|
||||
public virtual Telemetry Telemetry { get; set; } = null!;
|
||||
|
||||
[Column("name")]
|
||||
[StringLength(255)]
|
||||
public string Name { get; set; }
|
||||
public string? Name { get; set; }
|
||||
|
||||
[Column("surname")]
|
||||
[StringLength(255)]
|
||||
public string Surname { get; set; }
|
||||
public string Surname { get; set; } = null!;
|
||||
|
||||
[Column("patronymic")]
|
||||
[StringLength(255)]
|
||||
public string Patronymic { get; set; }
|
||||
public string? Patronymic { get; set; }
|
||||
|
||||
[Column("level")]
|
||||
public int? Level { get; set; }
|
||||
|
Loading…
Reference in New Issue
Block a user