示例#1
0
        public async Task <IActionResult> GetByIdAsync(int id)
        {
            var response = await _placeService.FindByIdAsync(id);

            if (!response.Success)
            {
                return(BadRequest(response));
            }

            return(Ok(response));
        }
        public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            SavePlaceResource savePlaceResource;

            if (context.ActionArguments.ContainsKey("savePlaceResource"))
            {
                savePlaceResource = (SavePlaceResource)context.ActionArguments["savePlaceResource"];
            }
            else
            {
                context.Result = new BadRequestObjectResult(new ErrorResource("Wrong argument provided."));
                return;
            }

            DataResponse <PlaceResource> placeByIdResource = null;

            if (context.ActionArguments.ContainsKey("id"))
            {
                var placeId = (int)context.ActionArguments["id"];
                placeByIdResource = await _placeService.FindByIdAsync(placeId);

                if (!placeByIdResource.Success)
                {
                    context.Result = new NotFoundObjectResult(new ErrorResource("Place no found."));
                    return;
                }
            }

            var placeByNameResource = await _placeService.FindByNameAsync(savePlaceResource.Name);

            if (placeByNameResource.Success && placeByNameResource.Data != null)
            {
                if (placeByIdResource == null ||
                    placeByNameResource.Data.Id != placeByIdResource.Data.Id)
                {
                    context.Result = new BadRequestObjectResult(
                        new ErrorResource("There is another place with this name."));
                    return;
                }
            }

            await next();
        }
示例#3
0
        public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            SaveReservationResource saveReservationResource;

            if (context.ActionArguments.ContainsKey("saveReservationResource"))
            {
                saveReservationResource =
                    (SaveReservationResource)context.ActionArguments["saveReservationResource"];
            }
            else
            {
                context.Result = new BadRequestObjectResult(new ErrorResource("Wrong argument provided."));
                return;
            }

            if (context.ActionArguments.ContainsKey("id"))
            {
                var reservationId       = (int)context.ActionArguments["id"];
                var reservationResource = await _reservationService.FindByIdAsync(reservationId);

                if (!reservationResource.Success)
                {
                    context.Result = new NotFoundObjectResult(new ErrorResource("Reservation no found."));
                    return;
                }
            }

            var placeResource = await _placeService.FindByIdAsync(saveReservationResource.PlaceId);

            if (!placeResource.Success)
            {
                context.Result = new NotFoundObjectResult(new ErrorResource("Place no found."));
                return;
            }

            await next();
        }