Beispiel #1
0
        public TreasuryMoneyActionDto GiveMony(TreasuryMoneyActionInsertDto input)
        {
            TreasuryMoneyActionDto treasuryMoneyActionDto = null;

            try
            {
                decimal total = 0;

                _unitOfWork.CreateTransaction();

                var treasuryCash = _unitOfWork.GenericRepository <TreasuryCash>()
                                   .FindBy(x => x.CoinId == input.CoinId && x.TreasuryId == input.TreasuryId)
                                   .FirstOrDefault();

                if (treasuryCash != null)
                {
                    treasuryCash.Total += input.Amount;
                    _unitOfWork.GenericRepository <TreasuryCash>().Update(treasuryCash);
                    total = treasuryCash.Total;
                }
                else
                {
                    var newTreasuryCash = new TreasuryCash()
                    {
                        CoinId     = input.CoinId,
                        TreasuryId = input.TreasuryId,
                        Total      = input.Amount,
                        CreatedBy  = _appSession.GetUserName(),
                        Created    = DateTime.Now
                    };
                    _unitOfWork.GenericRepository <TreasuryCash>().Insert(newTreasuryCash);
                    total = newTreasuryCash.Total;
                }

                var treasuryMoneyAction = new TreasuryMoneyAction()
                {
                    Total      = total,
                    TreasuryId = input.TreasuryId,
                    CoinId     = input.CoinId,
                    Amount     = input.Amount,
                    Created    = DateTime.Now,
                    CreatedBy  = _appSession.GetUserName()
                };
                _unitOfWork.GenericRepository <TreasuryMoneyAction>().Insert(treasuryMoneyAction);

                _unitOfWork.Save();

                _unitOfWork.Commit();

                treasuryMoneyActionDto = Mapper.Map <TreasuryMoneyAction, TreasuryMoneyActionDto>(treasuryMoneyAction);
            }
            catch (Exception ex)
            {
                Tracing.SaveException(ex);
            }
            return(treasuryMoneyActionDto);
        }
        private void CreateTreasuryCashForAllTreasures(Coin coin)
        {
            var treasuries = _unitOfWork.GenericRepository <Treasury>().GetAll();

            foreach (var treasury in treasuries)
            {
                var treasuryCash = new TreasuryCash()
                {
                    Coin       = coin,
                    TreasuryId = treasury.Id,
                    IsEnabled  = true,
                    CreatedBy  = _appSession.GetUserName()
                };

                _unitOfWork.GenericRepository <TreasuryCash>().Insert(treasuryCash);
            }
        }