Esempio n. 1
0
        public int AddDeposit(DepositOwnerVm depositToAdd)
        {
            // depositToAdd.Season.Id = depositToAdd.Deposit.SeasonTireId;
            Deposit newDeposit = new Deposit();

            //Owner newOwner = new Owner();
            //Contact newContact = new Contact();

            //newContact.Id = depositToAdd.Contact.Id;
            //newContact.Email = depositToAdd.Contact.Email;
            //newContact.OwnerRef = depositToAdd.Contact.OwnerRef;
            //newContact.Tel = depositToAdd.Contact.Tel;
            //var contactId = _ownerRepository.AddNewContactToOwner(newContact);
            //var contact = _ownerRepository.GetContact(contactId);

            //newOwner.Id = depositToAdd.Owner.Id;
            //newOwner.LastName = depositToAdd.Owner.LastName;
            //newOwner.FirstName = depositToAdd.Owner.FirstName;
            //newOwner.Contact = contact;

            //var ownerId = _ownerRepository.AddOwner(newOwner);

            //newDeposit.Id = depositToAdd.Deposit.Id;
            newDeposit.Name            = depositToAdd.Deposit.Name;
            newDeposit.IsActive        = depositToAdd.Deposit.IsActive;
            newDeposit.Price           = depositToAdd.Deposit.Price;
            newDeposit.SeasonTireId    = depositToAdd.Deposit.SeasonTireId;
            newDeposit.TireTreadHeight = depositToAdd.Deposit.TireTreadHeight;
            newDeposit.EndDate         = depositToAdd.Deposit.EndDate;
            newDeposit.StartDate       = depositToAdd.Deposit.StartDate;

            //newDeposit.Owner.Id = depositToAdd.Owner.Id;
            newDeposit.Owner                  = new Owner();
            newDeposit.Owner.LastName         = depositToAdd.Owner.LastName;
            newDeposit.Owner.FirstName        = depositToAdd.Owner.FirstName;
            newDeposit.Owner.Contact          = new Contact();
            newDeposit.Owner.Contact.Email    = depositToAdd.Contact.Email;
            newDeposit.Owner.Contact.Tel      = depositToAdd.Contact.Tel;
            newDeposit.Owner.Contact.OwnerRef = depositToAdd.Contact.OwnerRef;

            //var deposit = _mapper.Map<Deposit>(depositToAdd);
            var id = _depositRepository.AddDeposit(newDeposit);

            return(id);
        }
        public async Task <bool> Handle(ApplyDepositCommand request, CancellationToken cancellationToken)
        {
            request.Deposit.Status         = true;
            request.Deposit.PercentDeposit = 1;

            var currentAccount = await _bankAccountRepository.Accounts
                                 .FirstOrDefaultAsync(x => x.IdAccount == request.Deposit.IdAccount, cancellationToken);

            if (currentAccount != null && currentAccount.Amount >= request.Deposit.Amount)
            {
                currentAccount.Amount -= request.Deposit.Amount;
                await _depositRepository.AddDeposit(request.Deposit);

                await _mediator.Send(new BankAccountOperationCommand(request.Deposit.IdAccount,
                                                                     "Передача средств на депозит",
                                                                     request.Deposit.Amount), cancellationToken);

                _logger.Log(LogLevel.Information, $"Apply deposit in account {request.Deposit.IdAccount}.");

                return(true);
            }

            return(false);
        }