1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- using Comal.Classes;
- using InABox.Core;
- namespace Comal.Stores;
- internal class JobScopeStatusStore : BaseStore<JobScopeStatus>
- {
- protected override void BeforeSave(JobScopeStatus entity)
- {
- base.BeforeSave(entity);
- var others = Provider.Query(new Filter<JobScopeStatus>(x => x.ID).IsNotEqualTo(entity.ID)
- .And(new Filter<JobScopeStatus>(x=>x.ContractDefault).IsEqualTo(true)
- .Or(x=>x.VariationDefault).IsEqualTo(true)
- .Or(x=>x.AdjustmentDefault).IsEqualTo(true)
- )
- ).ToObjects<JobScopeStatus>().ToList();
-
- var otherContracts = others.Where(x=>x.ContractDefault);
- if (entity.ContractDefault)
- {
- foreach (var otherContract in otherContracts)
- otherContract.ContractDefault = false;
- }
- else if (!otherContracts.Any())
- entity.ContractDefault = true;
-
- var otherVariations = others.Where(x=>x.VariationDefault);
- if (entity.VariationDefault)
- {
- foreach (var otherVariation in otherVariations)
- otherVariation.VariationDefault = false;
- }
- else if (!otherVariations.Any())
- entity.VariationDefault = true;
-
- var otherAdjustments = others.Where(x=>x.AdjustmentDefault);
- if (entity.AdjustmentDefault)
- {
- foreach (var otherAdjustment in otherAdjustments)
- otherAdjustment.AdjustmentDefault = false;
- }
- else if (!otherAdjustments.Any())
- entity.AdjustmentDefault = true;
-
- Provider.Save(others.Where(x=>x.IsChanged()));
- }
- }
|