1234567891011121314151617181920212223242526272829303132333435 |
- using Comal.Classes;
- using InABox.Core;
- using System;
- namespace Comal.Stores;
- internal class BillStore : BaseStore<Bill>
- {
- protected override void BeforeSave(Bill entity)
- {
- base.BeforeSave(entity);
- if(entity.HasOriginalValue(x => x.Number) || entity.SupplierLink.HasOriginalValue(x => x.ID))
- {
- var existing = Provider.Query<Bill>(
- new Filter<Bill>(x => x.Number).IsEqualTo(entity.Number)
- .And(x => x.SupplierLink.ID).IsEqualTo(entity.SupplierLink.ID)
- .And(x => x.ID).IsNotEqualTo(entity.ID),
- Columns.None<Bill>().Add(x => x.ID));
- if(existing.Rows.Count > 0)
- {
- throw new DuplicateCodeException(typeof(Bill), new Dictionary<string, object> {{ nameof(Bill.Number), entity.Number }});
- }
- }
- //UpdateAggregate<Supplier>(entity, entity.SupplierLink, Sum<Supplier>(b => b.Balance, s => s.Balance));
- }
- protected override void BeforeDelete(Bill entity)
- {
- base.BeforeDelete(entity);
- entity.SupplierLink.ID = Guid.Empty;
- //UpdateAggregate<Supplier>(entity, entity.SupplierLink, Sum<Supplier>(b => b.Balance, s => s.Balance));
- }
- }
|