public async Task <IActionResult> RejectLead([FromRoute] Guid organizationId, [FromRoute] Guid leadId, [FromBody] LeadRejectInput input) { var lead = await _leadService.RejectLead(_accountManager, leadId, input); return(Ok(lead)); }
public async Task <IActionResult> RejectLead([FromRoute] Guid organizationId, [FromRoute] Guid leadId, [FromBody] LeadRejectInput input) { var ao = _agencyOwner.Value; var response = await _leadService.RejectLead(ao, leadId, input); return(Ok(response)); }
private async Task <LeadResult> RejectLead(Guid leadId, LeadRejectInput input) { _logger.LogInformation(GetLogMessage("Rejecting lead: {0}; for Reason: {1}"), leadId, input.RejectionReason); var retVal = new LeadResult() { LeadId = leadId }; var entity = await Repository .FirstOrDefaultAsync(n => n.Id == leadId); if (entity.Status == LeadStatus.Promoted) { retVal.ErrorMessage = "Lead has already been promoted"; return(retVal); } if (entity.Status != LeadStatus.Rejected) { _logger.LogDebug(GetLogMessage("Lead is able to be rejected")); entity.Status = LeadStatus.Rejected; entity.RejectionReason = input.RejectionReason; entity.UpdatedById = _userInfo.Value.UserId; entity.Updated = DateTimeOffset.UtcNow; entity.ObjectState = ObjectState.Modified; entity.StatusTransitions.Add(new LeadStatusTransition() { Status = LeadStatus.Rejected, ObjectState = ObjectState.Added }); var leadResult = Repository.InsertOrUpdateGraph(entity, true); _logger.LogDebug(GetLogMessage("{0} records updated"), leadResult); if (leadResult > 0) { retVal.Succeeded = true; await Task.Run(() => { RaiseEvent(new LeadRejectedEvent { LeadId = leadId }); }); } } else { _logger.LogDebug(GetLogMessage("Lead is already rejected")); } return(retVal); }
public Task <LeadResult> RejectLead(IProviderAgencyOwner agencyOwner, Guid leadId, LeadRejectInput input) { _logger.LogInformation(GetLogMessage("AO: {0}; LeadId: {1}; Input: {@input}"), agencyOwner.OrganizationId, leadId, input); return(RejectLead(leadId, input)); }
public Task <LeadResult> RejectLead(IOrganizationAccountManager am, Guid leadId, LeadRejectInput input) { _logger.LogInformation(GetLogMessage("AM: {0}; LeadId: {1}; Input: {@input}"), am.OrganizationId, leadId, input); return(RejectLead(leadId, input)); }