Пример #1
0
        public IActionResult ApproveTransfer(int id)
        {
            int?userId = GetCurrentUserId();

            if (!userId.HasValue)
            {
                return(BadRequest());
            }

            Transfer transfer = transferDAO.GetTransferById(id);

            if (transfer == null)
            {
                return(NotFound());
            }
            if (transfer.TransferType == TransferType.Request && transfer.AccountFrom.UserId == userId)
            {
                if (transfer.TransferStatus != TransferStatus.Pending)
                {
                    return(Conflict());
                }
                else if (transferDAO.ApproveTransfer(id))
                {
                    return(Ok(transferDAO.GetTransferById(id))); //return newly approved transaction
                }
                else
                {
                    return(BadRequest());
                }
            }
            else
            {
                return(Conflict()); //or BadRequest
            }
        }