public async Task CreatePayment_Handler_Test()
        {
            //Arrange
            Cpf cpf     = "434.443.474-99";
            var dueDate = DateTime.UtcNow;
            var tid     = Guid.NewGuid();
            var value   = 20M;

            var payment = new Payment
            {
                Cpf     = cpf.Value,
                DueDate = dueDate,
                Tid     = tid,
                Value   = value
            };

            _mapper.Map <Payment>(Arg.Any <CreatePaymentModel.Request>()).Returns(payment);

            var service = GetInstance();

            var request = new CreatePaymentModel.Request
            {
                Cpf     = cpf.Value,
                DueDate = dueDate.ToString("yyyy-MM-ddTHH:mm:ss"),
                Value   = value.ToString()
            };

            //Act
            var result = await service.Handle(request, new System.Threading.CancellationToken());

            //Assert
            Assert.NotNull(result);
            Assert.True(result.Success);
            Assert.Equal(payment.Tid, result.Tid);
        }
        public bool IsNew(CreatePaymentModel.Request request)
        {
            var result = false;

            if (request.IsValid())
            {
                var refDate = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss");

                var payments = GetPayments(new GetPaymentModel.Request {
                    Cpf = request.Cpf, DueDate = refDate
                }).Result;

                var payment = _mapper.Map <Payment>(request);

                var found = payments.Where(p => p.Equals(payment));

                result = !payments.HaveAny() || (payments.HaveAny() && !found.HaveAny());
            }

            return(result);
        }
 public async Task <IActionResult> Post(CreatePaymentModel.Request request)
 => await _controllerHelper.ReturnAsync((request) => _mediator.Send(request), request);