internal override void BeforeUpdate(Data.Model.TaskAlert entity, Data.Dto.TaskAlert 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.TaskAlertUsers.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.TaskAlertUser() { UserId = user.UserId }); } } } }
internal override void BeforeCreate(Data.Model.TaskAlert entity, Data.Dto.TaskAlert dto) { ThrowIfDisposed(); foreach (var item in dto.Users) { entity.Users.Add(new Data.Model.TaskAlertUser() { UserId = item.UserId }); } }