Exemple #1
0
        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();
        }
Exemple #2
0
        public override void OnUpdated(DebtModel oldModel, DebtModel model)
        {
            base.OnUpdated(oldModel, model);

            // get from database
            var dbEntity = Entities.Include(_ => _.DebtPenalties).FirstOrDefault(_ => _.Id == model.Id);

            // update existing penalties
            foreach (var existingPenalty in dbEntity.DebtPenalties.ToList())
            {
                var penaltyModel = model.Penalties.FirstOrDefault(_ => _.Id == existingPenalty.Id);
                if (penaltyModel != null)
                {
                    existingPenalty.Date        = penaltyModel.Date;
                    existingPenalty.Description = penaltyModel.Description;
                    existingPenalty.Value       = penaltyModel.Value;
                    _historyService.WriteHistory(existingPenalty, Data.Enums.ActionType.Update, dbEntity.UserId);
                }
                else
                {
                    _historyService.WriteHistory(existingPenalty, Data.Enums.ActionType.Delete, dbEntity.UserId);
                    _context.DebtPenalties.Remove(existingPenalty);
                }
            }

            // add new penalties
            foreach (var newPenalty in model.Penalties.Where(e => !dbEntity.DebtPenalties.Any(p => p.Id == e.Id)))
            {
                var debtPenalty = new DebtPenalty()
                {
                    Date        = newPenalty.Date,
                    Description = newPenalty.Description,
                    Value       = newPenalty.Value,
                    DebtId      = dbEntity.Id
                };

                _context.DebtPenalties.Add(debtPenalty);
                _historyService.WriteHistory(debtPenalty, Data.Enums.ActionType.Add, dbEntity.UserId);
            }

            // save changes
            SaveChanges();
        }