public async Task <bool> Handle(CreateAgentMortgageSpreadsheetCommand @command, CancellationToken cancellationToken) { var agent = await queryExecutor.Execute <GetAgentQuery, Agent>(new GetAgentQuery() { AgentId = @command.AggregateId }); var mortgageSpreadsheet = CreateSpreadsheetForTrackingInquiry(agent, motgageInquiryHeaders, InquiryType.MortgageLeads); agent.AgentSpreadsheet.MortgageSpreadsheetUrl = mortgageSpreadsheet.SpreadsheetUrl; agent.AgentSpreadsheet.MortgageSpreadsheetId = mortgageSpreadsheet.SpreadsheetId; agent.AgentSpreadsheet.MortgageSpreadsheetName = agent.GetSpreadsheetName(Enum.GetName(typeof(InquiryType), InquiryType.MortgageLeads)); var filter = Builders <Agent> .Filter.Eq("Id", agent.Id); var update = Builders <Agent> .Update .Set("AgentSpreadsheet", agent.AgentSpreadsheet) .CurrentDate("UpdatedDate"); await agentRepository.Collection .UpdateOneAsync(filter, update, new UpdateOptions { IsUpsert = true }); agent.CreateSpreadsheet(InquiryType.MortgageLeads); await mediator.DispatchDomainEventsAsync(agent); return(true); }
public async Task <IActionResult> CreateAgentMortgageSpreadsheet([FromBody] CreateAgentMortgageSpreadsheetCommand @command) { var result = await mediator.Send(@command); return(result ? (IActionResult)Ok(result) : (IActionResult)BadRequest()); }