/// <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 }));
public void VoucherMatchTestRemark() { StringMatchTest((v, f) => MatchHelper.IsMatch(new Voucher { Remark = v }, new Voucher { Remark = f })); }
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 }));
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 })); }
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 })); }
/// <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()); }
public void DetailMatchTestDir(bool expected, double?value, int dir) { Assert.Equal(expected, MatchHelper.IsMatch(new VoucherDetail { Fund = value }, new VoucherDetail(), dir)); }
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)); }
protected override bool RunQuery(IQueryCompunded <IVoucherQueryAtom> query) => MatchHelper.IsMatch( m_Voucher, query);
public void VoucherMatchTestNull() { Assert.True(MatchHelper.IsMatch(new Voucher { ID = "id", Remark = "rmk" }, (Voucher)null)); }