Пример #1
0
        private async Task <bool> HaveFreePlaces(int workshopId, CancellationToken cancellationToken)
        {
            var query = new GetSingleItemQuery <Workshop>(workshopId);
            var item  = await mediator.Send(query, cancellationToken);

            return(item != null && item.FreePlaces > 0);
        }
Пример #2
0
        public virtual async Task <TDto> Handle(GetSingleItemQuery <TDto> request, CancellationToken cancellationToken)
        {
            var item = await ctx.Set <TDal>()
                       .Where(PKWherePredicate(request.Id))
                       .Select(Selector)
                       .FirstOrDefaultAsync();

            return(item);
        }
        public virtual async Task <IActionResult> Create(T model, [FromServices] IMediator mediator)
        {
            var command = new AddCommand <T>(model);
            int id      = await mediator.Send(command);

            var query = new GetSingleItemQuery <T>(id);
            var item  = await mediator.Send(query);

            return(CreatedAtAction(nameof(Get), new { id }, item));
        }
        public virtual async Task <ActionResult <T> > Get(int id, [FromServices] IMediator mediator)
        {
            var query = new GetSingleItemQuery <T>(id);
            var item  = await mediator.Send(query);

            if (item == null)
            {
                return(Problem(statusCode: StatusCodes.Status404NotFound, detail: $"No data for id = {id}"));
            }
            else
            {
                return(item);
            }
        }
        public virtual async Task <IActionResult> Delete(int id, [FromServices] IMediator mediator)
        {
            var query = new GetSingleItemQuery <T>(id);
            var item  = await mediator.Send(query);

            if (item == null)
            {
                return(Problem(statusCode: StatusCodes.Status404NotFound, detail: $"Invalid id = {id}"));
            }

            var command = new DeleteCommand <T>(id);
            await mediator.Send(command);

            return(NoContent());
        }
        public virtual async Task <IActionResult> Update(int id, T model, [FromServices] IMediator mediator)
        {
            if (model.Id != id) //ModelState.IsValid & model != null checked automatically due to [ApiController]
            {
                return(Problem(statusCode: StatusCodes.Status400BadRequest, detail: $"Different ids: {id} vs {model.Id}"));
            }
            else
            {
                var query = new GetSingleItemQuery <T>(id);
                var item  = await mediator.Send(query);

                if (item == null)
                {
                    return(Problem(statusCode: StatusCodes.Status404NotFound, detail: $"Invalid id = {id}"));
                }

                var command = new UpdateCommand <T>(model);
                await mediator.Send(command);

                return(NoContent());
            }
        }
Пример #7
0
 public GetSingleItemQueryResponse GetSingleItem(int itemId, GetSingleItemQuery request)
 {
     return(_apiClient.Request <GetSingleItemQueryResponse>(Methods.GET,
                                                            $"items/{itemId}", request));
 }