Beispiel #1
0
        public override async Task <ActionResult <NoteModel> > HandleAsync([FromRoute] AddNoteModel request, CancellationToken cancellationToken = default)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var lead = await _leadRepo.GetAsync(request.LeadId);

            var result = lead.AddNote(request.Note);

            var response = await _leadRepo.UpdateAsync(lead, cancellationToken);

            if (response && result.IsSuccess)
            {
                _log.LogInformation($"An note was added for the lead with id: { request.LeadId } ");

                var newNote = new NoteModel()
                {
                    Id      = result.Value.Id,
                    Content = result.Value.Content,
                    Links   = new()
                };

                GenerateLinksForNote(newNote, lead.Id);

                return(Ok(newNote));
            }
            else
            {
                _log.LogError("Something went wrong. Report this to the team.");

                return(BadRequest());
            }
        }
Beispiel #2
0
        public override async Task <ActionResult> HandleAsync([FromRoute] CustomerModel request, CancellationToken cancellationToken = default)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var lead = await _leadRepository.GetAsync(request.Id);

            if (lead is null)
            {
                return(NotFound());
            }

            lead.UpdateClient(
                new Customer(
                    new Name(request.FirstName, request.LastName),
                    request.PhoneNumber,
                    request.EmailAddress
                    )
                );

            await _leadRepository.UpdateAsync(lead, cancellationToken);

            return(Ok());
        }
Beispiel #3
0
        public override async Task <ActionResult> HandleAsync([FromRoute] UpdateNoteModel request, CancellationToken cancellationToken = default)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var lead = await _leadRepository.GetAsync(request.LeadId);

            if (lead is null)
            {
                return(NotFound());
            }

            var result = lead.UpdateNoteContent(request.NoteId, request.NewContent);

            if (!result.IsSuccess)
            {
                return(BadRequest(result.MetaResult.Message));
            }

            await _leadRepository.UpdateAsync(lead, cancellationToken);

            return(Ok());
        }
Beispiel #4
0
        public async Task EditAsync(LeadModel model)
        {
            var lead = await _leadRepository.GetAsync(model.Id);

            LeadFactory.Create(model, lead, _userId);
            _leadRepository.Edit(lead);
            await _unitOfWork.SaveChangesAsync();
        }
Beispiel #5
0
        public override async Task <ActionResult> HandleAsync([FromRoute] ChangePriceModel request, CancellationToken cancellationToken = default)
        {
            var lead = await _leadRepository.GetAsync(request.LeadId);

            if (lead is null)
            {
                return(NotFound());
            }

            lead.SetValue(request.NewPrice);

            await _leadRepository.UpdateAsync(lead, cancellationToken);

            return(Ok());
        }
Beispiel #6
0
        public override async Task <ActionResult> HandleAsync([FromRoute] CloseLeadModel request, CancellationToken cancellationToken = default)
        {
            var lead = await _leadRepository.GetAsync(request.LeadId);

            if (lead is null)
            {
                return(NotFound());
            }

            lead.CloseLead(request.CloseStatus);

            await _leadRepository.UpdateAsync(lead, cancellationToken);

            return(Ok());
        }
Beispiel #7
0
        public override async Task <ActionResult> HandleAsync([FromRoute] DeleteNoteModel request, CancellationToken cancellationToken = default)
        {
            var lead = await _leadRepository.GetAsync(request.LeadId);

            if (lead == null)
            {
                return(NotFound($"A lead with id: { request.LeadId } does not exist!"));
            }

            var result = lead.DeleteNote(request.NoteId);

            if (!result.IsSuccess)
            {
                return(BadRequest(result.MetaResult.Message));
            }
            else
            {
                await _leadRepository.UpdateAsync(lead, cancellationToken);

                return(Ok());
            }
        }