public static InactiveLeaseDTO DeactivateLease(this MarketStateDbBase mkt, LeaseDTO lse, string reason, DateTime deactivationDate) { if (lse is InactiveLeaseDTO) { throw Bad.State <LeaseDTO>("Inactive", "Active"); } var inactv = new InactiveLeaseDTO(lse, reason, deactivationDate, mkt.CurrentUser); mkt.InactiveLeases.Insert(inactv); return(inactv); }
protected override void ExecuteAfterSave(InactiveLeaseDTO lse, bool operationIsDelete) { if (operationIsDelete) { return; } _db.ActiveLeases.Delete(lse.Id); if (_db.ActiveLeases.HasId(lse.Id)) { throw Bad.State <LeaseDTO>("Deactivated", "Exists-As-Active"); } _db.Balances.GetRepo(lse.Id) .RecomputeFrom(lse.DeactivatedDate); }
private static List <JournalVoucherDTO> CastAsAllByfs(List <dynamic> byfHeadrs, List <dynamic> byfItems, MainWindowVM2 main) { var headrs = byfHeadrs.Select(_ => (JournalVoucherDTO)CastAsVoucherDTO(_)).ToList(); var itemsDict = GroupItemsByHeader(byfItems, main.RntCache); foreach (var kvp in itemsDict) { var headr = headrs.SingleOrDefault(_ => _.Id == kvp.Key); if (headr == null) { throw No.Match <JournalVoucherDTO>("Id", kvp.Key); } if (!headr.IsBalanced) { throw Bad.State <JournalVoucherDTO>("balanced", "not balanced"); } headr.Allocations = kvp.Value; headr.Amount = headr.TotalCredit; } return(headrs); }