Я использовал Generic-репозиторий и UnitOfWork в своем основном проекте .Net. а также я использую мягкое удаление в моей инфраструктуре.
Я хотел бы иметь общую подпрограмму или метод или шаблон, чтобы проверить, используется ли эта текущая запись, которую пользователь решает удалить, другой записью в таблице, чтобы позволитьего удалите (но не вручную и проверьте каждую таблицу один-один) Например, у меня есть персоны и таблица контактов, персона-A имеет контакт, а персона-B не имеет. Я хотел бы, если пользователь пытается удалить систему Person-A, не позволяйте ему, так что только пользователь может удалить person-B. Мой код будет примерно таким:
public ResultContainer DeletePerson(long id, long userId)
{
try
{
/////Here I will check
if(!HasDeletePermission(id))
{
return new ResultContainer(false, "You cant delete this person!!!");
}
Person person = GetPersonById(id);
unitOfWork.PersonRepository.Delete(id, userId);
unitOfWork.Save();
return new ResultContainer(true, "");
}
catch (Exception ex)
{
return new ResultContainer(false, ex.ToString());
}
}