public async Task <Unit> Handle(UpdateCommunicationChannelCalendarEventCommand request, CancellationToken cancellationToken) { // Vytáhnu záznam z datového zdroje. var entity = await _communicationChannelCalendarEventRepository.GetByIdAsync(request.Id) ?? throw new NotFoundException(nameof(CommunicationChannelCalendarEvent), request.Id); // Pokud uživatel nemá dostatečná práva vyhodím výjimku. if (entity.UserId != _currentUserService.User.Id) { throw new ForbiddenAccessException(); } // Naplním entitu daty z příkazu. entity.StartsAt = request.StartsAt; entity.EndsAt = request.EndsAt; entity.Name = request.Name; entity.Description = request.Description; // Přidám záznam do datového zdroje a uložím.` await _communicationChannelCalendarEventRepository.AddOrUpdateAsync(entity, cancellationToken); await _unitOfWork.SaveChangesAsync(cancellationToken); return(Unit.Value); }
public async Task <Unit> Handle(DeleteCommunicationChannelCalendarEventCommand request, CancellationToken cancellationToken) { // Vytáhnu záznam z datového zdroje (vyhodím výjimku, pokud se mi to nepodaří). var entity = await _communicationChannelCalendarEventRepository.GetByIdAsync(request.Id, true); // Záznam se podařilo nalézt -> smažu ho a uložím změny. _communicationChannelCalendarEventRepository.Remove(entity); await _unitOfWork.SaveChangesAsync(cancellationToken); return(Unit.Value); }
public async Task <CommunicationChannelCalendarEventDto> Handle(GetCommunicationChannelCalendarEventByIdQuery request, CancellationToken cancellationToken) { // Načtu událost z komunikačního kanálu z datového zdroje. var calendarEvent = await _communicationChannelCalendarEventRepository.GetByIdAsync(request.Id) ?? throw new NotFoundException(nameof(CommunicationChannelCalendarEvent), request.Id); // Pokud aktuálně přihlášený uživatel nemá právo na zobrazení události, vyhodím výjimku. if (!calendarEvent.CommunicationChannel.Users.Contains(_currentUserService.User)) { throw new FormatException(); } return(_mapper.Map <CommunicationChannelCalendarEventDto>(calendarEvent)); }