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()); } }
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()); }
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()); }
public async Task EditAsync(LeadModel model) { var lead = await _leadRepository.GetAsync(model.Id); LeadFactory.Create(model, lead, _userId); _leadRepository.Edit(lead); await _unitOfWork.SaveChangesAsync(); }
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()); }
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()); }
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()); } }