示例#1
0
        protected async Task <ActionResult <HALResponse> > DeleteWithMap <DeleteDto, DeleteCommand, ResponseDto>(
            DeleteDto requestDto,
            IMediator mediator,
            IMapper mapper,
            IHalService <ResponseDto> halService)
        {
            var command = mapper.Map <DeleteCommand>(requestDto);
            var model   = await mediator.Send(command);

            var responseDto = mapper.Map <ResponseDto>(model);
            var halResponse = halService.AddLinks(responseDto);

            return(Ok(halResponse));
        }
示例#2
0
        protected async Task <ActionResult <HALResponse> > Create <CreateDto, CreateCommand>(
            CreateDto requestDto,
            IMediator mediator,
            IMapper mapper,
            IHalService <ResponseDto> halService)
        {
            var command = mapper.Map <CreateCommand>(requestDto);
            var model   = await mediator.Send(command);

            var responseDto = mapper.Map <ResponseDto>(model);
            var halResponse = halService.AddLinks(responseDto);

            return(this.CreatedByUsingTheRequestRoute(halResponse));
        }
示例#3
0
        protected ActionResult <HALResponse> GetAll(
            IReaderGetAll <DataModel> readerGetAll,
            IMapper mapper,
            IHalService <ResponseDto> halService)
        {
            var halResponses = readerGetAll
                               .GetAll()
                               .Select(dataModel =>
            {
                var responseDto = mapper.Map <ResponseDto>(dataModel);

                return(halService.AddLinks(responseDto));
            })
                               .ToList();
            var halResponse = halService.AddLinks(halResponses);

            return(Ok(halResponse));
        }
示例#4
0
        protected ActionResult <HALResponse> Get <RequestDto, Query>(
            RequestDto requestDto,
            IReaderGet <DataModel, Query> readerGet,
            IMapper mapper,
            IHalService <ResponseDto> halService)
        {
            var query     = mapper.Map <Query>(requestDto);
            var dataModel = readerGet.Get(query);

            if (dataModel is null)
            {
                throw new NotFoundException("suggestion");
            }

            var responseDto = mapper.Map <ResponseDto>(dataModel);
            var halResponse = halService.AddLinks(responseDto);

            return(Ok(halResponse));
        }