fix(aihtiSyncer): в таблице Applications в уникальность по Name добавлено поле Type. Исправлена синхронизация, поиск по имени application и typeId. Теперь возможно создать приложения с одинаковыми именами но разными типами.

This commit is contained in:
Mikhail Trubnikov
2024-04-17 11:51:24 +10:00
parent 59113e87da
commit 238ff23bc9
8 changed files with 2680 additions and 14 deletions

View File

@@ -86,7 +86,7 @@ namespace PARR.DAL.Context
{
// При добавлении записей, добавлять тоже в PARR.DAL.Contracts.SettingsFromDb
f.HasData(
new { Name = nameof(SettingsFromDb.Initiator), Description = "Инициатор регламентной работы, указывается при создании шаблона в ЕСПП.", Value = "КУЗНЕЦОВ МИХАИЛ ВАЛЕРЬЕВИЧ (IVC_KUZNETSOVMV@DVGD.OAO.RZD)" },
new { Name = nameof(SettingsFromDb.Initiator), Description = "Инициатор регламентной работы, указывается при создании шаблона в ЕСПП.", Value = "НАГИМОВ ПАВЕЛ БОРИСОВИЧ (5000966)" },
new { Name = nameof(SettingsFromDb.ClosingCode), Description = "Код закрытия регламентной работы, указывается при создании шаблона в ЕСПП.", Value = "выполнен" },
new { Name = nameof(SettingsFromDb.Category), Description = "Категория создаваемого объекта в ЕСПП", Value = "регламентная работа" },
new { Name = nameof(SettingsFromDb.TemplatePrefixName), Description = "Префикс имени шаблона в ЕСПП", Value = "%PREFIX%-ЭИТИ-ПТК-ПАРР" },

View File

@@ -0,0 +1,52 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace PARR.DAL.Migrations
{
/// <inheritdoc />
public partial class tblSettingsInitiatorUpdNagimovAndApplicationsUniqueTypeAndName : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropIndex(
name: "IX_Applications_Name",
table: "Applications");
migrationBuilder.UpdateData(
table: "Settings",
keyColumn: "Name",
keyValue: "Initiator",
column: "Value",
value: "НАГИМОВ ПАВЕЛ БОРИСОВИЧ (5000966)");
migrationBuilder.CreateIndex(
name: "IX_Applications_Name_ApplicationTypeId",
table: "Applications",
columns: new[] { "Name", "ApplicationTypeId" },
unique: true);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropIndex(
name: "IX_Applications_Name_ApplicationTypeId",
table: "Applications");
migrationBuilder.UpdateData(
table: "Settings",
keyColumn: "Name",
keyValue: "Initiator",
column: "Value",
value: "КУЗНЕЦОВ МИХАИЛ ВАЛЕРЬЕВИЧ (IVC_KUZNETSOVMV@DVGD.OAO.RZD)");
migrationBuilder.CreateIndex(
name: "IX_Applications_Name",
table: "Applications",
column: "Name",
unique: true);
}
}
}

View File

@@ -112,7 +112,7 @@ namespace PARR.DAL.Migrations
b.HasIndex("ApplicationTypeId");
b.HasIndex("Name")
b.HasIndex("Name", "ApplicationTypeId")
.IsUnique();
b.ToTable("Applications");
@@ -1886,7 +1886,7 @@ namespace PARR.DAL.Migrations
{
Name = "Initiator",
Description = "Инициатор регламентной работы, указывается при создании шаблона в ЕСПП.",
Value = "КУЗНЕЦОВ МИХАИЛ ВАЛЕРЬЕВИЧ (IVC_KUZNETSOVMV@DVGD.OAO.RZD)"
Value = "НАГИМОВ ПАВЕЛ БОРИСОВИЧ (5000966)"
},
new
{

View File

@@ -6,7 +6,7 @@ using System.ComponentModel.DataAnnotations.Schema;
namespace PARR.DAL.Models
{
[Table("Applications")]
[Index(nameof(Name), IsUnique = true)]
[Index(nameof(Name), nameof(ApplicationTypeId), IsUnique = true)]
public class Application : IBase
{
[Key]

View File

@@ -22,9 +22,9 @@ namespace PARR.DAL.Services.Implementations
protected override DataContext EntitiContext => dataContext;
public async Task<Application?> GetByNameAsync(string appName)
public async Task<Application?> GetByNameAsync(string appName, Guid typeId)
{
return await EntitySet.FirstOrDefaultAsync(t => t.Name.ToLower() == appName.Trim().ToLower());
return await EntitySet.FirstOrDefaultAsync(t => t.Name.ToLower() == appName.Trim().ToLower() && t.ApplicationTypeId == typeId);
}
}
}

View File

@@ -5,6 +5,6 @@ namespace PARR.DAL.Services.Interfaces
{
public interface IApplicationService : IBaseService<Application>
{
Task<Application?> GetByNameAsync(string appName);
Task<Application?> GetByNameAsync(string appName, Guid typeId);
}
}