public async Task <TransactionItemDto> AddAsync(TransactionItemDto transactionItem)
        {
            var transaction = _mapper.Map <TransactionHistory>(transactionItem);
            await _transactionsHistoryRepository.AddAsync(transaction);

            return(transactionItem);
        }
 protected void ucIDetail_ChildListInstanceRowSaving(object sender, InstanceRowSavingEventArgs e)
 {
     using (IUnitOfWork uow = UnitOfWorkFactory.Instance.Start(DataStoreResolver.CRMDataStoreKey))
     {
         switch ((InstanceTypes)Enum.Parse(typeof(InstanceTypes), e.InstanceType))
         {
         case InstanceTypes.TransactionItem:
             TransactionFacade  facade             = new TransactionFacade(uow);
             TransactionItemDto TransactionItemDto = e.Instance as TransactionItemDto;
             // Save data
             IFacadeUpdateResult <TransactionData> result = facade.SaveTransactionItem(CurrentInstance.Id, TransactionItemDto);
             e.IsSuccessful = result.IsSuccessful;
             if (result.IsSuccessful)
             {
                 // Refresh
                 TransactionDto savedCurrentInstance = result.ToDto(new TransactionConverter());
                 CurrentInstance.TransactionItems = savedCurrentInstance.TransactionItems;
             }
             else
             {
                 // Deal with Update result
                 ProcUpdateResult(result.ValidationResult, result.Exception);
             }
             break;
         }
     }
 }
Esempio n. 3
0
        public async Task Should_Contain_Successful_StatusCode_When_A_Successfully_Transaction_Could_Be_Found_By_The_Service()
        {
            //Arange
            var transactionId = Guid.NewGuid();
            var merchantId    = Guid.NewGuid();
            var response      = new TransactionItemDto(
                transactionId,
                merchantId,
                100,
                "Paolo Regoli",
                "1234567812345678",
                "Successful",
                string.Empty);

            _request.Id = transactionId;

            _transactionsHistoryService.Setup(x => x.GetByTransactionIdAsync(_request.Id))
            .Returns(Task.FromResult(response));

            _cardsService.Setup(x => x.Decrypt(response.CardNumber)).Returns(response.CardNumber);

            //Act
            var result = await _handler.Handle(_request, new CancellationToken());

            //Assert
            _logger.Verify(x => x.Log(LogLevel.Error, It.IsAny <Exception>(), It.IsAny <string>()), Times.Never);
            Assert.NotNull(result);
            Assert.AreEqual(result.StatusCode, "Successful");
        }
Esempio n. 4
0
        public async Task Should_Contain_NotFound_StatusCode_When_A_Transaction_Could_Not_Be_Found_By_The_Service()
        {
            //Arange
            TransactionItemDto response = null;

            _transactionsHistoryService.Setup(x => x.GetByTransactionIdAsync(It.IsAny <Guid>()))
            .Returns(Task.FromResult(response));

            //Act
            var result = await _handler.Handle(_request, new CancellationToken());

            //Assert
            _logger.Verify(x => x.Log(LogLevel.Error, It.IsAny <Exception>(), It.IsAny <string>()), Times.Never);
            Assert.NotNull(result);
            Assert.AreEqual(result.StatusCode, HttpStatusCode.NotFound.ToString());
        }
Esempio n. 5
0
        internal IFacadeUpdateResult <TransactionData> SaveTransactionItem(object parentId, TransactionItemDto childDto)
        {
            ArgumentValidator.IsNotNull("parentId", parentId);
            ArgumentValidator.IsNotNull("childDto", childDto);

            FacadeUpdateResult <TransactionData> result = new FacadeUpdateResult <TransactionData>();
            ITransactionService service = UnitOfWork.GetService <ITransactionService>();
            var parentQuery             = service.Retrieve(parentId);

            if (parentQuery.HasResult)
            {
                Transaction     parent = parentQuery.ToBo <Transaction>();
                TransactionItem child  = RetrieveOrNewTransactionItem(parent, childDto.Id);
                if (child != null)
                {
                    child.ItemDescription = childDto.ItemDescription;
                    child.ProductId       = childDto.ProductId;
                    child.Quantity        = childDto.Quantity;
                    child.UnitPrice       = childDto.UnitPrice;
                    child.Amount          = childDto.Amount;

                    var saveQuery = service.Save(parent);
                    result.Merge(saveQuery);
                    result.AttachResult(parent.RetrieveData <TransactionData>());
                }
                else
                {
                    AddError(result.ValidationResult, "TransactionItemCannotBeFound");
                }
            }

            return(result);
        }
Esempio n. 6
0
 public IFacadeUpdateResult <TransactionData> SaveTransactionItem(object parentId, TransactionItemDto childDto)
 {
     return(TransactionSystem.SaveTransactionItem(parentId, childDto));
 }