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);
        }
Exemplo n.º 2
0
        public async Task <IActionResult> CreateAgentMortgageSpreadsheet([FromBody] CreateAgentMortgageSpreadsheetCommand @command)
        {
            var result = await mediator.Send(@command);

            return(result ?
                   (IActionResult)Ok(result) :
                   (IActionResult)BadRequest());
        }