feat(core,dal,domain,templateUpdater): Задания роботам выдаюстя с учетом подмены и множества переименований
This commit is contained in:
@@ -299,46 +299,87 @@ namespace PARR.TemplateUpdater.Services
|
||||
/// <returns></returns>
|
||||
private async Task<bool> PrepareOldTemplateNameAsync(string oldName, string newName, Template template)
|
||||
{
|
||||
// Проверяем, не запущено ли уже переименование для этого шаблона
|
||||
var alreadyPending = await _templateRenamePendingRepository.Get()
|
||||
.AsNoTracking()
|
||||
var existRenamePending = await _templateRenamePendingRepository.Get()
|
||||
.FirstOrDefaultAsync(t => t.TemplateId == template.Id);
|
||||
|
||||
if (alreadyPending != null)
|
||||
if (existRenamePending != null)
|
||||
{
|
||||
logger.LogError("При попытке переименования шаблона {TemplateId}, из '{OldName}' в '{NewName}', " +
|
||||
"произошла ошибка, этот шаблон уже находится в процессе переименования (старое имя {PendingName})", template.Id, oldName, newName, alreadyPending.OldName);
|
||||
return false;
|
||||
logger.LogInformation(
|
||||
"Найдено существующее задание на переименование шаблона {TemplateId}. " +
|
||||
"Обновляю OldName с '{OriginalOldName}' на '{NewOldName}'.",
|
||||
template.Id, existRenamePending.OldName, oldName);
|
||||
|
||||
// Подменяем имя шаблона
|
||||
existRenamePending.OldName = oldName;
|
||||
existRenamePending.DateModified = DateTimeOffset.UtcNow;
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Создаем запись
|
||||
var pendingRename = new TemplateRenamePending
|
||||
{
|
||||
TemplateId = template.Id,
|
||||
DateCreated = DateTimeOffset.UtcNow,
|
||||
OldName = oldName
|
||||
};
|
||||
|
||||
logger.LogInformation(
|
||||
"Добавлен шаблон в таблицу ожидания переименования. TemplateId: {TemplateId}, OldName: '{OldName}', NewName: '{NewName}'.",
|
||||
template.Id, oldName, newName);
|
||||
|
||||
var addResult = await _templateRenamePendingRepository.CreateAsync(pendingRename);
|
||||
if (!addResult)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Уникально ли имя в таблице ожидания переименования
|
||||
var existPendingOldName = await _templateRenamePendingRepository.Get()
|
||||
.AsNoTracking()
|
||||
.FirstOrDefaultAsync(t => t.OldName == oldName);
|
||||
#region Old
|
||||
|
||||
if (existPendingOldName != null)
|
||||
{
|
||||
logger.LogError("При добавлении старого имени в таблицу ожидания для шаблона {TemplateId} обнаружен конфликт: " +
|
||||
"имя '{ExistOldName}' уже зарезервировано другим процессом для шаблона {ExistTemplateId}",
|
||||
template.Id, existPendingOldName.OldName, existPendingOldName.TemplateId);
|
||||
//// Проверяем, не запущено ли уже переименование для этого шаблона
|
||||
//var alreadyPending = await _templateRenamePendingRepository.Get()
|
||||
// .AsNoTracking()
|
||||
// .FirstOrDefaultAsync(t => t.TemplateId == template.Id);
|
||||
|
||||
return false;
|
||||
}
|
||||
//if (alreadyPending != null)
|
||||
//{
|
||||
// logger.LogError("При попытке переименования шаблона {TemplateId}, из '{OldName}' в '{NewName}', " +
|
||||
// "произошла ошибка, этот шаблон уже находится в процессе переименования (старое имя {PendingName})", template.Id, oldName, newName, alreadyPending.OldName);
|
||||
// return false;
|
||||
//}
|
||||
|
||||
// Все нормально, добавляем запись в таблицу
|
||||
var pendingRename = new TemplateRenamePending
|
||||
{
|
||||
TemplateId = template.Id,
|
||||
DateCreated = DateTimeOffset.UtcNow,
|
||||
OldName = oldName,
|
||||
Template = template
|
||||
};
|
||||
//// Уникально ли имя в таблице ожидания переименования
|
||||
//var existPendingOldName = await _templateRenamePendingRepository.Get()
|
||||
// .AsNoTracking()
|
||||
// .FirstOrDefaultAsync(t => t.OldName == oldName);
|
||||
|
||||
var addResult = await _templateRenamePendingRepository.CreateAsync(pendingRename);
|
||||
if (!addResult)
|
||||
return false;
|
||||
//if (existPendingOldName != null)
|
||||
//{
|
||||
// logger.LogError("При добавлении старого имени в таблицу ожидания для шаблона {TemplateId} обнаружен конфликт: " +
|
||||
// "имя '{ExistOldName}' уже зарезервировано другим процессом для шаблона {ExistTemplateId}",
|
||||
// template.Id, existPendingOldName.OldName, existPendingOldName.TemplateId);
|
||||
|
||||
return true;
|
||||
// return false;
|
||||
//}
|
||||
|
||||
//// Все нормально, добавляем запись в таблицу
|
||||
//var pendingRename = new TemplateRenamePending
|
||||
//{
|
||||
// TemplateId = template.Id,
|
||||
// DateCreated = DateTimeOffset.UtcNow,
|
||||
// OldName = oldName,
|
||||
// Template = template
|
||||
//};
|
||||
|
||||
//var addResult = await _templateRenamePendingRepository.CreateAsync(pendingRename);
|
||||
//if (!addResult)
|
||||
// return false;
|
||||
|
||||
//return true;
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user