public Insurance Card([FromBody] int id) { if (id <= 0) { throw new ArgumentOutOfRangeException(nameof(id)); } var model = _insuranceRepository.Get(id); if (model == null) { throw new InvalidOperationException(); } return(model); }
public InsuranceAction Sign([FromBody] InsuranceAction action) { if (action == null) { throw new ArgumentNullException(nameof(action)); } if (action.InsuranceId <= 0) { throw new ArgumentException(); } var insurance = _insuranceRepository.Get(action.InsuranceId); if (insurance.Status != InsuranceStatus.Draft) { throw new InvalidOperationException(); } using (var transaction = _actionRepository.BeginTransaction()) { action.ActionType = InsuranceActionType.Sign; action.ActionDate = DateTime.Now; action.AuthorId = _sessionContext.UserId; var debitAccountId = _branchContext.Configuration?.CashOrderSettings?.InsuranceSettings?.SignSettings?.DebitId ?? 0; var creditAccountId = _branchContext.Configuration?.CashOrderSettings?.InsuranceSettings?.SignSettings?.CreditId ?? 0; CreateOrder(insurance, action, OrderType.CashOut, debitAccountId, creditAccountId); ModelState.Clear(); TryValidateModel(action); ModelState.Validate(); insurance.Status = InsuranceStatus.Signed; _insuranceRepository.Update(insurance); _actionRepository.Insert(action); transaction.Commit(); } return(action); }