public async Task <IActionResult> GetRestaurantsByTown([FromQuery] GetAllRestaurantsByTown query) =>
 (await _mediator.Send(query)).Match(Ok, Error);
        public async Task <Option <IList <RestaurantWithAvrgRatingView>, Error> > Handle(GetAllRestaurantsByTown request, CancellationToken cancellationToken)
        {
            var result = await _queryDbConnector.FetchAsync <List <RestaurantWithAvrgRatingView> >(
                sql : RestaurantQueryRepository.RestaurantsByTownQuery,
                mapping : (reader, restaurants) => restaurants.Add(reader.Get <RestaurantWithAvrgRatingView>()),
                parameters : new Dictionary <string, object>
            {
                { "@TownID", request.TownId }
            },
                cancellationToken : cancellationToken);

            return(result.Some <IList <RestaurantWithAvrgRatingView>, Error>());
        }