コード例 #1
0
        public async Task <IActionResult> ProcessOrder(IncommingOrderDto order)
        {
            try
            {
                var validationResult = PayloadValidator.ValidateOrderDetails(order);
                if (!validationResult.Item1)
                {
                    return(BadRequest(string.Join(", ", validationResult.Item2)));
                }

                var paymentResult = await PaymentProcessor.ProcessPayment(_clientFactory, order);

                if (!paymentResult.Item1)
                {
                    return(BadRequest(paymentResult.Item2));
                }

                var result = await _orders.AddNewOrderDetails(order);

                if (!result.Success)
                {
                    BadRequest(result.Message);
                }

                var uri = $"https://localhost:44327/api/billing/order/{result.SingleOrder.OrderNumber}";
                return(Created(uri, DtoMapper.MapResultDtoToCreatedOrderDto(result)));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }
コード例 #2
0
ファイル: DtoMapperTests.cs プロジェクト: PuceEdgar/home-task
        public void MapResultDtoToCreatedOrderDto_ShouldReturnCreatedOrderDtoType()
        {
            var result = new ResultDto
            {
                SingleOrder = new ReadOrderDto {
                    OrderNumber = 5, UserId = 456, PayableAmount = 99.12, PaymentGateWay = "Seb", Description = "This is order number 5"
                },
                Message = "OK"
            };
            var actual = DtoMapper.MapResultDtoToCreatedOrderDto(result);

            Assert.IsType <CreatedOrderDto>(actual);
        }
コード例 #3
0
ファイル: DtoMapperTests.cs プロジェクト: PuceEdgar/home-task
        public void MapResultDtoToCreatedOrderDto_ShouldReturnCreatedOrderDto()
        {
            var resultDto = new ResultDto
            {
                SingleOrder = new ReadOrderDto {
                    OrderNumber = 5, UserId = 456, PayableAmount = 99.12, PaymentGateWay = "Seb", Description = "This is order number 5"
                },
                Message = "OK"
            };

            var createdOrderDto = new CreatedOrderDto {
                Message = resultDto.Message, OrderDetails = resultDto.SingleOrder
            };

            var expected = JsonConvert.SerializeObject(createdOrderDto);

            var result = DtoMapper.MapResultDtoToCreatedOrderDto(resultDto);
            var actual = JsonConvert.SerializeObject(result);

            Assert.Equal(expected, actual);
        }