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); }