public async Task <Unit> Handle(EditCommand request, CancellationToken cancellationToken) { var sqzLinkToFind = request.SqzLink.Replace("%2F", "/"); var sqzLink = await _context.Set <SqzLink>() .FirstOrDefaultAsync(entity => entity.Link == sqzLinkToFind); if (sqzLink is null) { throw new NotFoundException($"SqzLink \"{sqzLinkToFind}\" was not found."); } _mapper.Map(request, sqzLink); _context.Set <SqzLink>().Update(sqzLink); var savingResult = await _context.SaveChangesAsync(cancellationToken); return(new Unit()); }
public async Task <NavigateDto> Handle(NavigateCommand request, CancellationToken cancellationToken) { var sqzLinkToFind = request.SqzLink.Replace("%2F", "/"); var sqzLinkEntity = await _context.Set <SqzLink>().FirstOrDefaultAsync(entity => entity.Link == sqzLinkToFind); if (sqzLinkEntity == null) { throw new NotFoundException($"SqzLink \"{sqzLinkToFind}\" was not found."); } sqzLinkEntity.Clicks++; _context.Set <Domain.Entities.SqzLink>().Update((Domain.Entities.SqzLink)sqzLinkEntity); var savingResult = await _context.SaveChangesAsync(cancellationToken); return(new NavigateDto { DestinationUrl = sqzLinkEntity.DestinationUrl }); }
public async Task <SqzLinkDto> Handle(CreateCommand request, CancellationToken cancellationToken) { var sqzLinkEntity = _mapper.Map <SqzLink>(request); sqzLinkEntity.Key = _urlShorteningService.ShortenUrl(request.DestinationUrl); _context.Set <SqzLink>().Add(sqzLinkEntity); await _context.SaveChangesAsync(cancellationToken); return(new SqzLinkDto { SqzLink = sqzLinkEntity.Link }); }