public async Task <IActionResult> RejectProposal([FromRoute] Guid organizationId, [FromRoute] Guid proposalId, [FromBody] ProposalRejectionInput model) { var p = await _proposalService .Reject(_customer, proposalId, model); return(Ok(p)); }
public async Task <ProposalResult> Reject(Guid proposalId, ProposalRejectionInput input) { _logger.LogTrace(GetLogMessage($@"Rejecting Proposal: {proposalId}")); var proposal = await Repository.Queryable() .FindById(proposalId) .FirstOrDefaultAsync(); return(await RejectProposal(proposal, input)); }
private async Task <ProposalResult> RejectProposal(FixedPriceProposal proposal, ProposalRejectionInput input) { if (proposal == null) { throw new ApplicationException("No proposal found with this id for this organization"); } var retVal = new ProposalResult() { ProposalId = proposal.Id }; proposal.Status = ProposalStatus.Rejected; proposal.UpdatedById = _userInfo.UserId; proposal.Updated = DateTimeOffset.UtcNow; proposal.StatusTransitions.Add(new ProposalStatusTransition() { Status = ProposalStatus.Rejected, ObjectState = ObjectState.Added }); proposal.InjectFrom(input); var result = Update(proposal); if (result.Succeeded) { retVal.Succeeded = true; await Task.Run(() => { RaiseEvent(new ProposalRejectedEvent { ProposalId = result.ProposalId }); }); } return(retVal); }