public async Task <bool> Handle(CreateAgentSpreadsheetAccountForRentInquiryCommand @command, CancellationToken cancellationToken) { var agent = await queryExecutor.Execute <GetAgentQuery, Agent>(new GetAgentQuery() { AgentId = @command.AggregateId }); var spreadsheet = CreateSpreadsheetForTrackingInquiry(agent, customerHeaders.Concat(rentInquiryHeaders).ToList(), InquiryType.RentInquiry); agent.RentInquiry.SpreadsheetUrl = spreadsheet.SpreadsheetUrl; agent.RentInquiry.SpreadsheetId = spreadsheet.SpreadsheetId; agent.RentInquiry.SpreadsheetName = agent.GetSpreadsheetName(Enum.GetName(typeof(InquiryType), InquiryType.RentInquiry)); var filter = Builders <Agent> .Filter.Eq("Id", agent.Id); var update = Builders <Agent> .Update .Set("RentInquiry", agent.RentInquiry) .CurrentDate("UpdatedDate"); await agentRepository.Collection .UpdateOneAsync(filter, update, new UpdateOptions { IsUpsert = true }); agent.CreateSpreadsheet(InquiryType.RentInquiry); await mediator.DispatchDomainEventsAsync(agent); return(true); }
public async Task <IActionResult> CreateAgentSpreadsheetAccountForRentInquiry([FromBody] CreateAgentSpreadsheetAccountForRentInquiryCommand @command) { var result = await mediator.Send(@command); return(result ? (IActionResult)Ok(result) : (IActionResult)BadRequest()); }