internal override void BeforeUpdate(Data.Model.AssetAlert entity, Data.Dto.AssetAlert dto) { ThrowIfDisposed(); var currentUsers = entity.Users.ToList(); for (var index = currentUsers.Count - 1; index >= 0; index--) { var user = currentUsers[index]; if (!dto.Users.Any(tdu => tdu.UserId == user.UserId)) { Context.AssetAlertUsers.Remove(user); } } foreach (var user in dto.Users) { var existingUser = Context.Users.FirstOrDefault(a => a.Id == user.UserId); if (existingUser != null) { if (!entity.Users.Any(tdu => tdu.UserId == user.UserId)) { entity.Users.Add(new Data.Model.AssetAlertUser() { UserId = user.UserId }); } } } }
internal override void BeforeCreate(Data.Model.AssetAlert entity, Data.Dto.AssetAlert dto) { ThrowIfDisposed(); foreach (var item in dto.Users) { entity.Users.Add(new Data.Model.AssetAlertUser() { UserId = item.UserId }); } }