public override void OnAdded(DebtModel model, Debt entity) { base.OnAdded(model, entity); // update Id, because it would be used for record model.Id = entity.Id; // add new penalties foreach (var newPenalty in model.Penalties.Where(e => !entity.DebtPenalties.Any(p => p.Id == e.Id))) { var debtPenalty = new DebtPenalty() { Date = newPenalty.Date, Description = newPenalty.Description, Value = newPenalty.Value, DebtId = entity.Id }; _context.DebtPenalties.Add(debtPenalty); _historyService.WriteHistory(debtPenalty, Data.Enums.ActionType.Add, entity.UserId); } // create record for debt if storage is provided if (model.StorageId.HasValue && model.StorageId > 0) { _recordService.CreateForDebt(model); } // save changes SaveChanges(); }