fix(aihtiSyncer): в таблице Applications в уникальность по Name добавлено поле Type. Исправлена синхронизация, поиск по имени application и typeId. Теперь возможно создать приложения с одинаковыми именами но разными типами.
This commit is contained in:
@@ -175,12 +175,6 @@ namespace PARR.AIHITSyncer.Services
|
|||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(appName) || string.IsNullOrWhiteSpace(appName)) return null;
|
if (string.IsNullOrEmpty(appName) || string.IsNullOrWhiteSpace(appName)) return null;
|
||||||
|
|
||||||
|
|
||||||
var existApp = await appService.GetByNameAsync(appName);
|
|
||||||
if (existApp != null)
|
|
||||||
return existApp;
|
|
||||||
|
|
||||||
//Создаем
|
|
||||||
var appType = GetAppTypeByName(type);
|
var appType = GetAppTypeByName(type);
|
||||||
if (appType == null)
|
if (appType == null)
|
||||||
{
|
{
|
||||||
@@ -188,6 +182,11 @@ namespace PARR.AIHITSyncer.Services
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var existApp = await appService.GetByNameAsync(appName, appType.Id);
|
||||||
|
if (existApp != null)
|
||||||
|
return existApp;
|
||||||
|
|
||||||
|
//Создаем
|
||||||
var app = new Application
|
var app = new Application
|
||||||
{
|
{
|
||||||
Id = Guid.NewGuid(),
|
Id = Guid.NewGuid(),
|
||||||
@@ -201,7 +200,6 @@ namespace PARR.AIHITSyncer.Services
|
|||||||
logger.LogInformation($"Создана запись а таблице Application: {appName}, {app.ToJson()}");
|
logger.LogInformation($"Создана запись а таблице Application: {appName}, {app.ToJson()}");
|
||||||
|
|
||||||
return await appService.GetAsync(app.Id);
|
return await appService.GetAsync(app.Id);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ namespace PARR.DAL.Context
|
|||||||
{
|
{
|
||||||
// При добавлении записей, добавлять тоже в PARR.DAL.Contracts.SettingsFromDb
|
// При добавлении записей, добавлять тоже в PARR.DAL.Contracts.SettingsFromDb
|
||||||
f.HasData(
|
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.ClosingCode), Description = "Код закрытия регламентной работы, указывается при создании шаблона в ЕСПП.", Value = "выполнен" },
|
||||||
new { Name = nameof(SettingsFromDb.Category), Description = "Категория создаваемого объекта в ЕСПП", Value = "регламентная работа" },
|
new { Name = nameof(SettingsFromDb.Category), Description = "Категория создаваемого объекта в ЕСПП", Value = "регламентная работа" },
|
||||||
new { Name = nameof(SettingsFromDb.TemplatePrefixName), Description = "Префикс имени шаблона в ЕСПП", Value = "%PREFIX%-ЭИТИ-ПТК-ПАРР" },
|
new { Name = nameof(SettingsFromDb.TemplatePrefixName), Description = "Префикс имени шаблона в ЕСПП", Value = "%PREFIX%-ЭИТИ-ПТК-ПАРР" },
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -112,7 +112,7 @@ namespace PARR.DAL.Migrations
|
|||||||
|
|
||||||
b.HasIndex("ApplicationTypeId");
|
b.HasIndex("ApplicationTypeId");
|
||||||
|
|
||||||
b.HasIndex("Name")
|
b.HasIndex("Name", "ApplicationTypeId")
|
||||||
.IsUnique();
|
.IsUnique();
|
||||||
|
|
||||||
b.ToTable("Applications");
|
b.ToTable("Applications");
|
||||||
@@ -1886,7 +1886,7 @@ namespace PARR.DAL.Migrations
|
|||||||
{
|
{
|
||||||
Name = "Initiator",
|
Name = "Initiator",
|
||||||
Description = "Инициатор регламентной работы, указывается при создании шаблона в ЕСПП.",
|
Description = "Инициатор регламентной работы, указывается при создании шаблона в ЕСПП.",
|
||||||
Value = "КУЗНЕЦОВ МИХАИЛ ВАЛЕРЬЕВИЧ (IVC_KUZNETSOVMV@DVGD.OAO.RZD)"
|
Value = "НАГИМОВ ПАВЕЛ БОРИСОВИЧ (5000966)"
|
||||||
},
|
},
|
||||||
new
|
new
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ using System.ComponentModel.DataAnnotations.Schema;
|
|||||||
namespace PARR.DAL.Models
|
namespace PARR.DAL.Models
|
||||||
{
|
{
|
||||||
[Table("Applications")]
|
[Table("Applications")]
|
||||||
[Index(nameof(Name), IsUnique = true)]
|
[Index(nameof(Name), nameof(ApplicationTypeId), IsUnique = true)]
|
||||||
public class Application : IBase
|
public class Application : IBase
|
||||||
{
|
{
|
||||||
[Key]
|
[Key]
|
||||||
|
|||||||
@@ -22,9 +22,9 @@ namespace PARR.DAL.Services.Implementations
|
|||||||
|
|
||||||
protected override DataContext EntitiContext => dataContext;
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,6 @@ namespace PARR.DAL.Services.Interfaces
|
|||||||
{
|
{
|
||||||
public interface IApplicationService : IBaseService<Application>
|
public interface IApplicationService : IBaseService<Application>
|
||||||
{
|
{
|
||||||
Task<Application?> GetByNameAsync(string appName);
|
Task<Application?> GetByNameAsync(string appName, Guid typeId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user