Exemplo n.º 1
0
        public async Task <CommunicationChannelDto> Handle(CreateCommunicationChannelCommand request, CancellationToken cancellationToken)
        {
            // Vytvořím entitu naplněnou daty z příkazu.
            var entity = new CommunicationChannel()
            {
                Name        = request.Name,
                Description = request.Description
            };

            // Přidám aktuálně přihlášeného uživatele do seznamu uživatelů ve skupině.
            entity.Users.Add(_currentUserService.User);

            // Přidám záznam do datového zdroje a uložím.
            await _communicationChannelRepository.AddOrUpdateAsync(entity, cancellationToken);

            await _unitOfWork.SaveChangesAsync(cancellationToken);

            // Vrátím Id vytvořeného záznamu.
            return(_mapper.Map <CommunicationChannelDto>(entity));
        }
        public async Task <Unit> Handle(UpdateCommunicationChannelCommand request, CancellationToken cancellationToken)
        {
            // Vytáhnu záznam z datového zdroje.
            var entity = await _communicationChannelRepository.GetByIdAsync(request.Id);

            // Pokud se mi záznam nepodařilo najít, vrátím NotFoundException (zdroj nenalezen).
            if (entity is null)
            {
                throw new NotFoundException(nameof(CommunicationChannel), request.Id);
            }

            // Naplním entitu daty z příkazu.
            entity.Name        = request.Name;
            entity.Description = request.Description;

            // Přidám záznam do datového zdroje a uložím.`
            await _communicationChannelRepository.AddOrUpdateAsync(entity, cancellationToken);

            await _unitOfWork.SaveChangesAsync(cancellationToken);

            return(Unit.Value);
        }