Esempio n. 1
0
    /// <inheritdoc />
    protected override async IAsyncEnumerable <string> ExecuteUnregister(
        IQueryCompounded <IDistributedQueryAtom> distQuery, DateFilter rng,
        IQueryCompounded <IVoucherQueryAtom> query, Session session)
    {
        await foreach (var a in Sort(session.Accountant.SelectAmortizationsAsync(distQuery)))
        {
            foreach (var item in a.Schedule.Where(item => item.Date.Within(rng)))
            {
                if (query != null)
                {
                    if (item.VoucherID == null)
                    {
                        continue;
                    }

                    var voucher = await session.Accountant.SelectVoucherAsync(item.VoucherID);

                    if (voucher != null)
                    {
                        if (!MatchHelper.IsMatch(query, voucher.IsMatch))
                        {
                            continue;
                        }
                    }
                }

                item.VoucherID = null;
            }

            yield return(await ListAmort(a, session));

            await session.Accountant.UpsertAsync(a);
        }
    }
 public void DetailMatchTestNull()
 => Assert.True(
     MatchHelper.IsMatch(
         new VoucherDetail {
     Content = "cnt", Fund = 10, Remark = "rmk"
 },
         (VoucherDetail)null));
 public void DetailMatchTestRemark()
 => StringMatchTest(
     (v, f) => MatchHelper.IsMatch(new VoucherDetail {
     Remark = v
 }, new VoucherDetail {
     Remark = f
 }));
 public void DetailMatchTestContent()
 => StringMatchTest(
     (v, f) => MatchHelper.IsMatch(new VoucherDetail {
     Content = v
 }, new VoucherDetail {
     Content = f
 }));
Esempio n. 5
0
 public void VoucherMatchTestRemark()
 {
     StringMatchTest((v, f) => MatchHelper.IsMatch(new Voucher {
         Remark = v
     }, new Voucher {
         Remark = f
     }));
 }
Esempio n. 6
0
 public void VoucherMatchTestType(bool expected, VoucherType?value, VoucherType?filter)
 {
     Assert.Equal(expected, MatchHelper.IsMatch(new Voucher {
         Type = value
     }, new Voucher {
         Type = filter
     }));
 }
 public void DetailMatchTestCurrency(bool expected, string value, string filter)
 => Assert.Equal(
     expected,
     MatchHelper.IsMatch(new VoucherDetail {
     Currency = value
 }, new VoucherDetail {
     Currency = filter
 }));
 public void DetailMatchTestFund(bool expected, double?value, double?filter)
 => Assert.Equal(
     expected,
     MatchHelper.IsMatch(new VoucherDetail {
     Fund = value
 }, new VoucherDetail {
     Fund = filter
 }));
 public void DetailMatchTestSubTitle(bool expected, int?value, int?filter)
 => Assert.Equal(
     expected,
     MatchHelper.IsMatch(new VoucherDetail {
     SubTitle = value
 }, new VoucherDetail {
     SubTitle = filter
 }));
Esempio n. 10
0
 public void VoucherMatchTestID(bool expected, string value, string filter)
 {
     Assert.Equal(expected, MatchHelper.IsMatch(new Voucher {
         ID = value
     }, new Voucher {
         ID = filter
     }));
 }
 public void DetailMatchTestUser(bool expected, string value, string filter)
 {
     Assert.Equal(
         expected,
         MatchHelper.IsMatch(new VoucherDetail {
         User = value
     }, new VoucherDetail {
         User = filter
     }));
 }
Esempio n. 12
0
        public void VoucherMatchTestDate(bool expected, string valueS, string filterS)
        {
            var value  = valueS.ToDateTime();
            var filter = filterS.ToDateTime();

            Assert.Equal(expected, MatchHelper.IsMatch(new Voucher {
                Date = value
            }, new Voucher {
                Date = filter
            }));
        }
Esempio n. 13
0
        /// <inheritdoc />
        protected override IQueryResult ExecuteUnregister(IQueryCompunded <IDistributedQueryAtom> distQuery,
                                                          DateFilter rng,
                                                          IQueryCompunded <IVoucherQueryAtom> query, IEntitiesSerializer serializer)
        {
            var sb = new StringBuilder();

            foreach (var a in Sort(Accountant.SelectAssets(distQuery)))
            {
                foreach (var item in a.Schedule.Where(item => item.Date.Within(rng)))
                {
                    if (query != null)
                    {
                        if (item.VoucherID == null)
                        {
                            continue;
                        }

                        var voucher = Accountant.SelectVoucher(item.VoucherID);
                        if (voucher != null)
                        {
                            if (!MatchHelper.IsMatch(query, voucher.IsMatch))
                            {
                                continue;
                            }
                        }
                    }

                    item.VoucherID = null;
                }

                sb.Append(ListAsset(a, serializer));
                Accountant.Upsert(a);
            }

            if (sb.Length > 0)
            {
                return(new DirtyText(sb.ToString()));
            }

            return(new PlainSucceed());
        }
Esempio n. 14
0
 public void DetailMatchTestDir(bool expected, double?value, int dir)
 {
     Assert.Equal(expected, MatchHelper.IsMatch(new VoucherDetail {
         Fund = value
     }, new VoucherDetail(), dir));
 }
Esempio n. 15
0
        public void VoucherMatchTest()
        {
            var filter = new Voucher
            {
                ID     = "abc",
                Date   = new DateTime(2017, 1, 1, 0, 0, 0, DateTimeKind.Utc),
                Type   = VoucherType.Ordinary,
                Remark = "abc"
            };

            Assert.False(
                MatchHelper.IsMatch(
                    new Voucher
            {
                ID     = "abc0",
                Date   = new DateTime(2017, 1, 1, 0, 0, 0, DateTimeKind.Utc),
                Type   = VoucherType.Ordinary,
                Remark = "abc"
            },
                    filter));
            Assert.False(
                MatchHelper.IsMatch(
                    new Voucher
            {
                ID     = "abc",
                Date   = new DateTime(2018, 1, 1, 0, 0, 0, DateTimeKind.Utc),
                Type   = VoucherType.Ordinary,
                Remark = "abc"
            },
                    filter));
            Assert.False(
                MatchHelper.IsMatch(
                    new Voucher
            {
                ID     = "abc",
                Date   = new DateTime(2017, 1, 1, 0, 0, 0, DateTimeKind.Utc),
                Type   = VoucherType.Carry,
                Remark = "abc"
            },
                    filter));
            Assert.False(
                MatchHelper.IsMatch(
                    new Voucher
            {
                ID     = "abc",
                Date   = new DateTime(2017, 1, 1, 0, 0, 0, DateTimeKind.Utc),
                Type   = VoucherType.Ordinary,
                Remark = "abc0"
            },
                    filter));
            Assert.True(
                MatchHelper.IsMatch(
                    new Voucher
            {
                ID     = "abc",
                Date   = new DateTime(2017, 1, 1, 0, 0, 0, DateTimeKind.Utc),
                Type   = VoucherType.Ordinary,
                Remark = "abc"
            },
                    filter));
        }
Esempio n. 16
0
 protected override bool RunQuery(IQueryCompunded <IVoucherQueryAtom> query) => MatchHelper.IsMatch(
     m_Voucher,
     query);
Esempio n. 17
0
 public void VoucherMatchTestNull()
 {
     Assert.True(MatchHelper.IsMatch(new Voucher {
         ID = "id", Remark = "rmk"
     }, (Voucher)null));
 }