public override async Task <ActionResult <bool> > HandleAsync(CreateLeadModel request, CancellationToken cancellationToken = default) { if (!ModelState.IsValid) { return(BadRequest()); } var lead = Lead.New(request.LeadProducts, request.PhoneNumber, request.DelivaryAddress, request.Email); if (lead is null) { return(NotFound()); } var updatedLead = await _leadService.AssignExistingClient(lead, request.PhoneNumber, cancellationToken); if (!updatedLead.IsSuccess) { _logger.LogError("An error ocure when lead was updated!"); return(BadRequest()); } await _leadRepo.CreateAsync(lead, cancellationToken); _logger.LogInformation($"An new lead with id:{ lead.Id } was added."); return(Created($"leads/{ lead.Id }", null)); }