コード例 #1
0
        /// <summary>
        /// Созлание записи в журнале проводок
        /// </summary>
        /// <param name="sourceAccount">DTO счета с которого совершается проводка</param>
        /// <param name="destinationAccount">DTO счета на который совершается проводка</param>
        /// <param name="isActiceSource">Флаг признака активного типа для счета дебета</param>
        /// <param name="isActiveDestination">Флаг признака активного типа для счета кредита</param>
        /// <param name="request">Сущность комманды создания записи в журнале проводки</param>
        /// <param name="cancellationToken">Токен отмены</param>
        /// <returns></returns>
        public async Task <ResponseBaseDto> CreateAccountHistoryTransferEntry(AccountDto sourceAccount,
                                                                              AccountDto destinationAccount,
                                                                              bool isActiceSource,
                                                                              bool isActiveDestination,
                                                                              CreateTransferAccountCommand request,
                                                                              CancellationToken cancellationToken)
        {
            bool sourceIsPresent      = true;
            bool destinationIsPresent = true;

            if (sourceAccount == null)
            {
                sourceAccount   = _baseHelper.InitiateAccount(request.SourceAccountNumber, request.SourceAccountType, isActiceSource);
                sourceIsPresent = false;
            }
            if (destinationAccount == null)
            {
                destinationAccount   = _baseHelper.InitiateAccount(request.DestinationAccountNumber, request.DestinationAccountType, isActiveDestination);
                destinationIsPresent = false;
            }

            var result = await _helper.FormAccountEntryResponse(sourceAccount, destinationAccount, request.OperationId, request.Amount, request.DueDate, request.Description, sourceIsPresent, destinationIsPresent);

            if (result is ResponseMessageDto)
            {
                return(result);
            }

            return(result);
        }
コード例 #2
0
        /// <summary>
        /// Метод проведения корректирующей проводки в прошлое число
        /// </summary>
        /// <param name="sourceAccount">DTO счета с которого совершается проводка</param>
        /// <param name="destinationAccount">DTO счета на который совершается проводка</param>
        /// <param name="request">Сущность комманды создания счета</param>
        /// <param name="cancellationToken">Токен отмены</param>
        /// <returns></returns>
        public async Task <ResponseBaseDto> TryRecalculateEntriesForTransfer(AccountDto sourceAccount,
                                                                             AccountDto destinationAccount,
                                                                             CreateTransferAccountCommand request,
                                                                             CancellationToken cancellationToken)
        {
            var sourceType = (ResponseOkDto <AccountTypeModel>) await _mediator.Send(new GetAccountTypeQuery(request.SourceAccountType));

            var destinationType = (ResponseOkDto <AccountTypeModel>) await _mediator.Send(new GetAccountTypeQuery(request.DestinationAccountType));

            var isSourceActive      = sourceType.Result.IsActive;
            var isDestinatiomActive = destinationType.Result.IsActive;
            var accountsForUpdate   = new List <AccountHistoryModel>();

            if (sourceAccount is null && destinationAccount is null)
            {
                return(await _createAccountEntryHelper.CreateAccountHistoryTransferEntry(sourceAccount, destinationAccount, isSourceActive, isDestinatiomActive, request, cancellationToken));
            }
コード例 #3
0
        /// <summary>
        /// Созлание записи в таблице модуля проводок
        /// </summary>
        /// <param name="sourceAccount">DTO счета с которого совершается проводка</param>
        /// <param name="destinationAccount">DTO счета на который совершается проводка</param>
        /// <param name="request">Сущность комманды на создание счета</param>
        /// <param name="isSourcePresent">Присутствует ли счет с которго совершается проводка</param>
        /// <param name="isDestinationPresent">Присутсвует ли счет на который совершается проводка</param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task <ResponseBaseDto> AddBuferEntry(AccountDto sourceAccount,
                                                          AccountDto destinationAccount,
                                                          CreateTransferAccountCommand request,
                                                          bool isSourcePresent,
                                                          bool isDestinationPresent,
                                                          CancellationToken cancellationToken)
        {
            await _accountHistoryBufferRepository.AddBufferEntry(new BufferForFutureEntriesDatesModel(request.SourceAccountNumber,
                                                                                                      request.DestinationAccountNumber,
                                                                                                      request.Amount,
                                                                                                      request.DueDate.Date,
                                                                                                      request.OperationId,
                                                                                                      request.SourceAccountType,
                                                                                                      request.DestinationAccountType,
                                                                                                      request.Description));

            await _accountHistoryBufferRepository.SaveChangesAsync();

            return(_baseHelper.FormMessageResponse(ok, message));
        }
コード例 #4
0
        public async Task <ActionResult> TransferAccount(AmountTransferDto account)
        {
            var accountCommand = new CreateTransferAccountCommand(account.SourceAccountNumber, account.DestinationAccountNumber, Convert.ToDecimal(account.CurrentAmount), account.DueDate, account.SourceAccountType, account.DestinationAccountType, account.OperationId, account.Description);

            return(Ok(await CommandAsync(accountCommand)));
        }