private void SaveTransaction(Guid transactionHistoryId, long referenceNumber, double totalPrice)
        {
            var transaction = new TransactionHistoryDto
            {
                Id              = transactionHistoryId,
                Date            = DateTime.Now,
                ReferenceNumber = $"{referenceNumber}",
                TotalPrice      = (decimal)totalPrice
            };

            transactionAppService.AddTransaction(transaction);
        }
Beispiel #2
0
        public async Task <IActionResult> AddTransactionHistory([FromBody] TransactionHistoryDto transactionHistoryToAdd)
        {
            if (transactionHistoryToAdd.CurrencyId == 0)
            {
                return(BadRequest("The currency is mandatory!"));
            }
            var result = await _transactionHistoryService.AddTransactionHistory(transactionHistoryToAdd);

            if (!result.Succeeded)
            {
                return(BadRequest(result));
            }

            return(Ok(result));
        }
        public async Task <Result> AddTransactionHistory(TransactionHistoryDto transactionHistoryToAdd)
        {
            var entity = new TransactionHistory
            {
                Amount       = transactionHistoryToAdd.Amount,
                SenderId     = _currentUserService.UserId.Value,
                BeneficiarId = transactionHistoryToAdd.BeneficiarId,
                CurrencyId   = transactionHistoryToAdd.CurrencyId
            };

            await _context.TransactionsHistory.AddAsync(entity);

            await _context.SaveChangesAsync();

            return(Result.Success("Transaction History was created successfully"));
        }
Beispiel #4
0
        public IActionResult CreateTransaction([FromBody, SwaggerRequestBody("Transaction history payload", Required = true)] TransactionHistoryDto transactionHistoryDto)
        {
            logger.Info(nameof(TransactionHistoryController.CreateTransaction));

            try
            {
                transactionService.AddTransaction(transactionHistoryDto);

                return(Ok());
            }
            catch (Exception ex)
            {
                logger.Error(ex);

                return(BadRequest());
            }
        }
        public void AddTransaction(TransactionHistoryDto transactionDto)
        {
            if (transactionDto == null)
            {
                throw new ArgumentNullException(nameof(transactionDto));
            }

            if (transactionDto.TotalPrice <= 0)
            {
                throw new ArgumentException("Total Price should be greather than 0");
            }

            var transaction = mapperService.Map <TransactionHistoryDto, TransactionHistory>(transactionDto);

            unitOfWork.TransactionHistory.Create(transaction);
            unitOfWork.Save();
        }
        public async Task <Result> DeleteTransactionHistory(TransactionHistoryDto transactionHistoryToDelete)
        {
            var entity = await _context.TransactionsHistory
                         .FirstOrDefaultAsync(x => x.Id == transactionHistoryToDelete.Id && !x.Deleted);

            if (entity == null)
            {
                return(Result.Failure(new List <string> {
                    "No valid transaction history found"
                }));
            }

            entity.Deleted = true;

            await _context.SaveChangesAsync();

            return(Result.Success("Transaction History was deleted"));
        }
        public async Task <Result> UpdateTransactionHistory(TransactionHistoryDto transactionHistoryToUpdate)
        {
            var entity = await _context.TransactionsHistory
                         .FirstOrDefaultAsync(x => x.Id == transactionHistoryToUpdate.Id && !x.Deleted);

            if (entity == null)
            {
                return(Result.Failure(new List <string> {
                    "No valid transaction history found"
                }));
            }

            entity.Amount       = transactionHistoryToUpdate.Amount;
            entity.SenderId     = transactionHistoryToUpdate.SenderId;
            entity.BeneficiarId = transactionHistoryToUpdate.BeneficiarId;

            await _context.SaveChangesAsync();

            return(Result.Success("Transaction History update was successful"));
        }
Beispiel #8
0
        public TransactionHistoryServiceTests()
        {
            unitOfWorkMock = new Mock <IUnitOfWork>();

            transactionHistoryDtoEqualityComparer = new TransactionHistoryDtoEqualityComparer();

            transactions = new List <TransactionHistory>
            {
                new TransactionHistory
                {
                    Id = Guid.Empty,
                    ReferenceNumber = "ReferenceNumber1",
                    TotalPrice      = 101,
                    Date            = DateTime.Parse("03/06/20 15:00:00")
                },
                new TransactionHistory
                {
                    Id = Guid.Empty,
                    ReferenceNumber = "ReferenceNumber2",
                    TotalPrice      = 102,
                    Date            = DateTime.Parse("03/06/20 16:00:00")
                },
                new TransactionHistory
                {
                    Id = Guid.Empty,
                    ReferenceNumber = "ReferenceNumber3",
                    TotalPrice      = 103,
                    Date            = DateTime.Parse("03/06/20 17:00:00")
                }
            };

            transactionsDto = new List <TransactionHistoryDto>
            {
                new TransactionHistoryDto
                {
                    Id = Guid.Empty,
                    ReferenceNumber = "ReferenceNumber1",
                    TotalPrice      = 101,
                    Date            = DateTime.Parse("03/06/20 15:00:00")
                },
                new TransactionHistoryDto
                {
                    Id = Guid.Empty,
                    ReferenceNumber = "ReferenceNumber2",
                    TotalPrice      = 102,
                    Date            = DateTime.Parse("03/06/20 16:00:00")
                },
                new TransactionHistoryDto
                {
                    Id = Guid.Empty,
                    ReferenceNumber = "ReferenceNumber3",
                    TotalPrice      = 103,
                    Date            = DateTime.Parse("03/06/20 17:00:00")
                }
            };

            transactionDto = new TransactionHistoryDto
            {
                Id = transactionEmptyId,
                ReferenceNumber = "ReferenceNumber",
                TotalPrice      = 100,
                Date            = DateTime.Parse("03/06/20 15:00:00")
            };

            transaction = new TransactionHistory
            {
                Id = transactionEmptyId,
                ReferenceNumber = "ReferenceNumber",
                TotalPrice      = 100,
                Date            = DateTime.Parse("03/06/20 15:00:00")
            };

            transactionEmptyId = Guid.Empty;
            transactionId      = Guid.NewGuid();
            userId             = Guid.Parse("A2BA5D10-C628-4858-B821-D6F0399D01BC");

            tickets = new Ticket[]
            {
                new Ticket
                {
                    UserId             = userId,
                    TransactionHistory = transactions.ElementAt(0)
                },
                new Ticket
                {
                    UserId             = userId,
                    TransactionHistory = transactions.ElementAt(1)
                },
                new Ticket
                {
                    UserId             = userId,
                    TransactionHistory = transactions.ElementAt(2)
                }
            };

            unitOfWorkMock.Setup(uow => uow.TransactionHistory.Create(It.IsAny <TransactionHistory>()));

            unitOfWorkMock
            .Setup(uow => uow.TransactionHistory.Get(transactionId))
            .Returns(transaction);

            unitOfWorkMock
            .Setup(uow => uow.TransactionHistory.GetAll())
            .Returns(transactions.AsQueryable);

            unitOfWorkMock
            .Setup(uow => uow.Tickets.GetAll())
            .Returns(tickets.AsQueryable);

            var id = Guid.Parse("1DE63B31-A62D-4D5A-9BC7-846EB2E2BADE");

            unitOfWorkMock
            .Setup(uow => uow.TransactionHistory.Get(id))
            .Returns(() => null);

            transactionService = new TransactionService(unitOfWorkMock.Object);
        }