public async Task <bool> Handle(CreateAgentLandlordSpreadsheetCommand @command, CancellationToken cancellationToken) { var agent = await queryExecutor.Execute <GetAgentQuery, Agent>(new GetAgentQuery() { AgentId = @command.AggregateId }); var landlordSpreadsheet = CreateSpreadsheetForTrackingInquiry(agent, landLoardInquiryHeaders, InquiryType.LandlordLeads); agent.AgentSpreadsheet.LandlordSpreadsheetUrl = landlordSpreadsheet.SpreadsheetUrl; agent.AgentSpreadsheet.LandlordSpreadsheetId = landlordSpreadsheet.SpreadsheetId; agent.AgentSpreadsheet.LandlordSpreadsheetName = agent.GetSpreadsheetName(Enum.GetName(typeof(InquiryType), InquiryType.LandlordLeads)); 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.LandlordLeads); await mediator.DispatchDomainEventsAsync(agent); return(true); }
public async Task <IActionResult> CreateAgentLandlordSpreadsheet([FromBody] CreateAgentLandlordSpreadsheetCommand @command) { var result = await mediator.Send(@command); return(result ? (IActionResult)Ok(result) : (IActionResult)BadRequest()); }