Example #1
0
        public IActionResult GetTransactions([FromRoute] string?accountId, [FromQuery(Name = "oldest-time")] DateTime?fromDate = default, [FromQuery(Name = "newest-time")] DateTime?toDate = default, [FromQuery(Name = "min-amount")] decimal?minAmount = default, [FromQuery(Name = "max-amount")] decimal?maxAmount = default, string?text = default)
        {
            var args = new TransactionArgs {
                FromDate = fromDate, ToDate = toDate, MinAmount = minAmount, MaxAmount = maxAmount, Text = text
            };

            return(new WebApiGet <TransactionCollectionResult, TransactionCollection, Transaction>(this, () => _manager.GetTransactionsAsync(accountId, args, WebApiQueryString.CreatePagingArgs(this)),
                                                                                                   operationType: OperationType.Read, statusCode: HttpStatusCode.OK, alternateStatusCode: HttpStatusCode.NoContent));
        }
Example #2
0
        public void A110_ArgsValidator_Empty()
        {
            var ta = new TransactionArgs();
            var r  = TransactionArgsValidator.Default.Validate(ta);

            Assert.IsFalse(r.HasErrors);
            Assert.AreEqual(DateTime.UtcNow.Date.AddDays(-90), ta.FromDate !.Value.Date);
            Assert.IsNull(ta.ToDate);
            Assert.IsNull(ta.MinAmount);
            Assert.IsNull(ta.MaxAmount);
            Assert.IsNull(ta.Text);
        }
Example #3
0
        public async Task A110_ArgsValidator_Empty()
        {
            var ta = new TransactionArgs();
            var r  = await ValidationTester.Test().RunAsync(async() => await new TransactionArgsValidator().ValidateAsync(ta));

            Assert.IsFalse(r !.HasErrors);
            Assert.AreEqual(DateTime.UtcNow.Date.AddDays(-90), ta.FromDate !.Value.Date);
            Assert.IsNull(ta.ToDate);
            Assert.IsNull(ta.MinAmount);
            Assert.IsNull(ta.MaxAmount);
            Assert.IsNull(ta.Text);
        }
Example #4
0
 public void A150_ArgsValidator_Invalid()
 {
     ExpectValidationException.Throws(() =>
     {
         var ta = new TransactionArgs {
             FromDate = new DateTime(2020, 03, 01), ToDate = new DateTime(2020, 02, 01), MinAmount = 100m, MaxAmount = 80m, Text = "Best*Buy"
         };
         TransactionArgsValidator.Default.Validate(ta).ThrowOnError();
     },
                                      "Oldest time must be less than or equal to Newest time.",
                                      "Min Amount must be less than or equal to Max Amount.",
                                      "Text contains invalid or non-supported wildcard selection.");
 }
Example #5
0
        public void A140_ArgsValidator_ValidDiff()
        {
            var ta = new TransactionArgs {
                FromDate = new DateTime(2020, 03, 01), ToDate = new DateTime(2020, 04, 01), MinAmount = 100m, MaxAmount = 120m, Text = "Best Buy"
            };
            var r = TransactionArgsValidator.Default.Validate(ta);

            Assert.IsFalse(r.HasErrors);
            Assert.AreEqual(new DateTime(2020, 03, 01), ta.FromDate);
            Assert.AreEqual(new DateTime(2020, 04, 01), ta.ToDate);
            Assert.AreEqual(100m, ta.MinAmount);
            Assert.AreEqual(120m, ta.MaxAmount);
            Assert.AreEqual("Best Buy", ta.Text);
        }
Example #6
0
        public void A120_ArgsValidator_ToDateOnly()
        {
            var ta = new TransactionArgs {
                ToDate = new DateTime(2020, 03, 01)
            };
            var r = TransactionArgsValidator.Default.Validate(ta);

            Assert.IsFalse(r.HasErrors);
            Assert.AreEqual(new DateTime(2020, 03, 01).AddDays(-90), ta.FromDate);
            Assert.AreEqual(new DateTime(2020, 03, 01), ta.ToDate);
            Assert.IsNull(ta.MinAmount);
            Assert.IsNull(ta.MaxAmount);
            Assert.IsNull(ta.Text);
        }
Example #7
0
        public async Task A140_ArgsValidator_ValidDiff()
        {
            var ta = new TransactionArgs {
                FromDate = new DateTime(2020, 03, 01), ToDate = new DateTime(2020, 04, 01), MinAmount = 100m, MaxAmount = 120m, Text = "Best Buy"
            };
            var r = await ValidationTester.Test().RunAsync(async() => await new TransactionArgsValidator().ValidateAsync(ta));

            Assert.IsFalse(r !.HasErrors);
            Assert.AreEqual(new DateTime(2020, 03, 01), ta.FromDate);
            Assert.AreEqual(new DateTime(2020, 04, 01), ta.ToDate);
            Assert.AreEqual(100m, ta.MinAmount);
            Assert.AreEqual(120m, ta.MaxAmount);
            Assert.AreEqual("Best Buy", ta.Text);
        }
Example #8
0
        public async Task A120_ArgsValidator_ToDateOnly()
        {
            var ta = new TransactionArgs {
                ToDate = new DateTime(2020, 03, 01)
            };
            var r = await ValidationTester.Test().RunAsync(async() => await new TransactionArgsValidator().ValidateAsync(ta));

            Assert.IsFalse(r !.HasErrors);
            Assert.AreEqual(new DateTime(2020, 03, 01).AddDays(-90), ta.FromDate);
            Assert.AreEqual(new DateTime(2020, 03, 01), ta.ToDate);
            Assert.IsNull(ta.MinAmount);
            Assert.IsNull(ta.MaxAmount);
            Assert.IsNull(ta.Text);
        }
Example #9
0
 public async Task A150_ArgsValidator_Invalid()
 {
     await ValidationTester.Test()
     .ExpectMessages(
         "Oldest time must be less than or equal to Newest time.",
         "Min Amount must be less than or equal to Max Amount.",
         "Text contains invalid or non-supported wildcard selection.")
     .RunAsync(async() =>
     {
         var ta = new TransactionArgs {
             FromDate = new DateTime(2020, 03, 01), ToDate = new DateTime(2020, 02, 01), MinAmount = 100m, MaxAmount = 80m, Text = "Best*Buy"
         };
         (await new TransactionArgsValidator().ValidateAsync(ta).ConfigureAwait(false)).ThrowOnError();
     });
 }
 public IHttpActionResult UpdateTransactionHash([FromBody] TransactionArgs args)
 => this.Log(() => Operation.Try(() => args.ThrowIfNull(new MalformedApiArgumentsException()))
             .Then(opr => _bitlevel.VerifyAndSaveTransactionHash(args.Hash))
             .OperationResult(Request));