/// <summary> /// Назначить сделке указанный договор с клиентом. /// </summary> /// <param name="deal">Сделка.</param> /// <param name="contract">Договор с клиентом.</param> /// <param name="user">Пользователь, выполняющий операцию.</param> public void SetContract(Deal deal, ClientContract contract, User user) { if (deal.Contract == null) { CheckPossibilityToAddContract(deal, user); } else { CheckPossibilityToChangeContract(deal, user); } if (deal.Contract != contract) { CheckForMaxCashPaymentSumExceeding(deal, contract); var oldContract = deal.Contract; deal.Contract = contract; dealRepository.Save(deal); if (oldContract != null) { if (clientContractRepository.IsUsedBySingleDeal(oldContract, deal)) //коммита еще не было, поэтому в БД у сделки еще старый договор { clientContractRepository.Delete(oldContract); } } } }
/// <summary> /// Удаление договора с клиентом. /// </summary> /// <param name="contract">Договор, который нужно удалить.</param> public void Delete(ClientContract contract) { clientContractRepository.Delete(contract); }