Beispiel #1
0
        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));
        }