public TransferTransactionCancelledDomainEvent(TransferAccount sourceAccount, TransferAccount sinkAccount, TransferTransactionStatus status, string message)
 {
     SourceAccount = sourceAccount;
     SinkAccount   = sinkAccount;
     Message       = message;
     Status        = status;
 }
Exemplo n.º 2
0
        public IActionResult PayLoan(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            else
            {
                Account acc = _context.Account.Find(id); // get account info



                var AccList =
                    _context.Account
                    .Where(a => a.CustomerId == acc.CustomerId)
                    .Where(a => a.Accountno != acc.Accountno).ToList();

                TransferAccount ta = new TransferAccount()
                {
                    account  = acc,
                    accounts = AccList
                };

                return(View(ta));
            }
        }
Exemplo n.º 3
0
        public object MakeTransfer(TransferAccount transfer)
        {
            try
            {
                using (var conn = CreateConnection())
                {
                    conn.Open();

                    var current  = conn.QueryFirstOrDefault <AccountsModel>("SELECT * FROM public.\"Accounts\" WHERE \"AccountNumber\" = @AccountNumberCurrent;", new { transfer.AccountNumberCurrent });
                    var receiver = conn.QueryFirstOrDefault <AccountsModel>("SELECT * FROM public.\"Accounts\" WHERE \"AccountNumber\" = @AccountNumberReceiver;", new { transfer.AccountNumberReceiver });

                    if (current != null && receiver != null)
                    {
                        conn.Execute("UPDATE public.\"Accounts\" SET \"AccountBalance\" = @balance WHERE \"Id\" = @Id;",
                                     new
                        {
                            current.Id,
                            balance = current.AccountBalance - transfer.Value
                        });
                        conn.Execute("UPDATE public.\"Accounts\" SET \"AccountBalance\" = @balance WHERE \"Id\" = @Id;",
                                     new
                        {
                            receiver.Id,
                            balance = receiver.AccountBalance + transfer.Value
                        });
                        var time = DateTime.Now.ToString("yyyy.MM.dd, HH:mm:ss");
                        conn.Execute("INSERT INTO public.\"History\" VALUES(@Id, @AccountId, @Type, @Date, @Value);",
                                     new
                        {
                            Id        = Guid.NewGuid(),
                            AccountId = current.Id,
                            Type      = "Перевод средств на счет " + receiver.AccountNumber.ToString(),
                            Date      = time,
                            transfer.Value
                        });
                        conn.Execute("INSERT INTO public.\"History\" VALUES(@Id, @AccountId, @Type, @Date, @Value);",
                                     new
                        {
                            Id        = Guid.NewGuid(),
                            AccountId = receiver.Id,
                            Type      = "Зачисление со счета " + current.AccountNumber.ToString(),
                            Date      = time,
                            transfer.Value
                        });

                        current  = conn.QueryFirstOrDefault <AccountsModel>("SELECT * FROM public.\"Accounts\" WHERE \"AccountNumber\" = @AccountNumberCurrent;", new { transfer.AccountNumberCurrent });
                        receiver = conn.QueryFirstOrDefault <AccountsModel>("SELECT * FROM public.\"Accounts\" WHERE \"AccountNumber\" = @AccountNumberReceiver;", new { transfer.AccountNumberReceiver });

                        return(new { current, receiver });
                    }
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
            }
            return(null);
        }
 public TransferTransactionStartedDomainEvent(
     TransferAccount sourceAccount,
     TransferAccount sinkAccount,
     Money money,
     TransferTransactionStatus status)
 {
     SourceAccount = sourceAccount;
     SinkAccount   = sinkAccount;
     Money         = money;
     Status        = status;
 }
Exemplo n.º 5
0
 public StartTransferTransactionDomainCommand(
     TransferTransactionId transactionId,
     TransferAccount sourceAccount,
     TransferAccount sinkAccount,
     Money money)
 {
     AggregateRootId = transactionId;
     SourceAccount   = sourceAccount;
     SinkAccount     = sinkAccount;
     Money           = money;
 }
Exemplo n.º 6
0
        public async Task <IActionResult> CreateOrEdit(TransferAccount transferAccount)
        {
            if (ModelState.IsValid)
            {
                if (transferAccount.TransferAccountId > 0)
                {
                    try
                    {
                        _context.Update(transferAccount);

                        //await _context.SaveChangesAsync();
                        //double oldAmount = _context.TransferAccounts.Find(transferAccount.TransferAccountId).TransferAmount;
                        //double differnceAmount = transferAccount.TransferAmount - oldAmount;
                        //DepositAccount dAcount = _context.DepositAccounts.Find(transferAccount.DepositAccountId);
                        //dAcount.Balance -= differnceAmount;

                        //_context.Update(dAcount);

                        await _context.SaveChangesAsync();
                    }
                    catch (DbUpdateConcurrencyException)
                    {
                        throw;
                    }
                }
                else
                {
                    DepositAccount depositAccount1 = _context.DepositAccounts.Find(transferAccount.DepositAccountId);
                    depositAccount1.Balance -= transferAccount.TransferAmount;
                    _context.Update(depositAccount1);
                    _context.Add(transferAccount);
                    await _context.SaveChangesAsync();

                    ViewData["DepositAccountId"] = new SelectList(_context.DepositAccounts, "DepositAccountId", "DepositCode", transferAccount.DepositAccountId);
                }
                DepositAndTransferViewModel depositAndTransferViewModel = new DepositAndTransferViewModel();
                DepositAccount depositAccount = await _context.DepositAccounts.FindAsync(transferAccount.DepositAccountId);

                depositAndTransferViewModel.DepositAccountId = depositAccount.DepositAccountId;
                depositAndTransferViewModel.Donor            = depositAccount.Donor;
                depositAndTransferViewModel.DepositCode      = depositAccount.DepositCode;
                depositAndTransferViewModel.DepositDate      = depositAccount.DepositDate;
                depositAndTransferViewModel.DepositType      = depositAccount.DepositType;
                depositAndTransferViewModel.DepositAmount    = depositAccount.DepositAmount;
                depositAndTransferViewModel.Balance          = depositAccount.Balance;
                depositAndTransferViewModel.TransferAccounts =
                    _context.TransferAccounts.Where(d => d.DepositAccountId == depositAccount.DepositAccountId).ToList();

                return(Json(new { isValid = true, html = Helper.RenderRazorViewToString(this, "_EditDeposit", depositAndTransferViewModel) }));
            }
            ViewData["DepositAccountId"] = new SelectList(_context.DepositAccounts, "DepositAccountId", "DepositCode", transferAccount.DepositAccountId);
            return(Json(new { isValid = false, html = Helper.RenderRazorViewToString(this, "CreateOrEdit", transferAccount) }));
        }
Exemplo n.º 7
0
        public IActionResult MakeTransfer(TransferAccount transferAccount)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var result = _service.MakeTransfer(transferAccount);

            if (result == null)
            {
                return(BadRequest());
            }

            return(Ok(result));
        }
Exemplo n.º 8
0
        public IActionResult GetAutocomplete(string name)
        {
            var results = new List <TransferAccount>();

            try
            {
                string filter = null;
                // escape any apostophes.
                if (name != null)
                {
                    name   = name.Replace("'", "''");
                    filter = $"contains(name,'{name}')";
                }
                var expand = new List <string> {
                    "primarycontactid"
                };
                var accounts = _dynamicsClient.Accounts.Get(filter: filter, expand: expand).Value;
                foreach (var account in accounts)
                {
                    var transferAccount = new TransferAccount()
                    {
                        AccountId    = account.Accountid,
                        AccountName  = account.Name,
                        BusinessType = (AdoxioApplicantTypeCodes?)account.AdoxioBusinesstype
                    };
                    if (account.Primarycontactid != null)
                    {
                        transferAccount.ContactName = $"{account.Primarycontactid.Firstname} {account.Primarycontactid.Lastname}";
                    }
                    results.Add(transferAccount);
                }
            }
            catch (HttpOperationException httpOperationException)
            {
                _logger.LogError(httpOperationException, "Error while getting autocomplete data.");
            }
            catch (Exception e)
            {
                _logger.LogError(e, "Error while getting autocomplete data.");
            }

            return(new JsonResult(results));
        }
 public IActionResult PostTransferAccount([FromBody] TransferAccount transferAccount)
 {
     return(_transactionsRequestHundler.MakeTransfer(transferAccount));
 }
Exemplo n.º 10
0
 public ActionResult Transfer(TransferAccount model)
 {
     return(Json(model.Save(), JsonRequestBehavior.AllowGet));
 }