public ActionResult <int> Post([FromBody] reservationRestaurant resAux)
        {
            try{
                Restaurant_res          reserva = new Restaurant_res(resAux.fecha_res, resAux.cant_people, resAux.date, resAux.user_id, resAux.rest_id);
                AddResRestaurantCommand command = CommandFactory.AddResRestaurantCommand(reserva);
                command.Execute();

                //            var id = ResRestaurantRepository.addReservation(reserva);
                //Console.WriteLine(id);
                return(Ok());
            }
            catch (DatabaseException)
            {
                Console.WriteLine("Estoy en el databaseException");
                return(StatusCode(500));
            }
            catch (InvalidStoredProcedureSignatureException)
            {
                Console.WriteLine("Estoy en el InvalidStoredProcedureSignatureException");
                return(StatusCode(500));
            }
            catch (AvailabilityException e) {
                ErrorMessage errorMessage = new ErrorMessage(e.Message);
                return(BadRequest(errorMessage));
            }
        }
        public void addReservationTest()
        {
            restaurantId = RestaurantRepository.AddRestaurant(prueba);

            res = new Restaurant_res(
                "2019-07-28 00:00",
                1,
                "2019-05-30 00:17",
                5,
                restaurantId);

            addId = ResRestaurantRepository.addReservation(res);
            Assert.True(addId > 0);
        }
Beispiel #3
0
        public void deleteResRestaurantTest()
        {
            restaurantId = RestaurantRepository.AddRestaurant(restaurant);
            reservation  = new Restaurant_res(
                "2019-07-28 00:00",
                1,
                "2019-05-30 00:17",
                5,
                restaurantId);

            addId = ResRestaurantRepository.addReservation(reservation);
            ActionResult <string> res = controller.Delete(addId);

            Assert.NotNull(res);
        }
        /// <summary>
        ///     Metodo para listar Restaurantes reservas no pagadas
        /// </summary>
        /// <param name="user"></param>
        public List <Restaurant_res> getReservationNotPay(int user)
        {
            var ReservationList = new List <Restaurant_res>();
            var table           = PgConnection.Instance.ExecuteFunction("getReservationNotPay(@usuario)", user);

            for (var i = 0; i < table.Rows.Count; i++)
            {
                //Orden del SP id, ciudad, pais, restaurant, direccion, fecha_res, cant_persona
                var id = Convert.ToInt32(table.Rows[i][0].ToString());
                var fecha_reservacion = table.Rows[i][1].ToString();
                var tipo = "Restaurantes";

                var Restaurant_res = new Restaurant_res(id, fecha_reservacion, tipo);
                ReservationList.Add(Restaurant_res);
            }
            ;
            return(ReservationList);
        }
        // VARIABLES PARA LA DEFINICION DE LOS SP



        /// <summary>
        ///     Metodo para agregar una reserva de restaurant
        /// </summary>
        /// <param name="reserva"></param>
        public int addReservation(Restaurant_res reserva)
        {
            var table = PgConnection.Instance.ExecuteFunction("getAvailability(@res_id, @res_date)",
                                                              reserva.rest_id, reserva.fecha_res);
            var capacidad = Convert.ToInt32(table.Rows[0][0]);

            var tableRest = PgConnection.Instance.ExecuteFunction("getAvailabilityRest(@res_id)",
                                                                  reserva.rest_id);
            var capacidadRest = Convert.ToInt32(tableRest.Rows[0][0]);

            if (capacidad == 0 && reserva.cant_people < capacidadRest)
            {
                //Eso indica que puede reservar porque no hay reservas para esa hora y el numero no excede de lo disponible
                var resRest = PgConnection.Instance.ExecuteFunction(
                    "addreservationrestaurant(@fecha, @people, @fecha_reservacion, @userId, @restaurantId)",
                    reserva.fecha_res, reserva.cant_people, reserva.date, reserva.user_id, reserva.rest_id);

                var idRest = Convert.ToInt32(resRest.Rows[0][0]);
                Console.WriteLine("Id: ");
                Console.WriteLine(idRest);
                return(idRest);
            }
            else
            {
                if (capacidad < reserva.cant_people)
                {
                    //Este if indica que se quiere reservar una cantidad mayor a la que hay disponible para ese restaurant para esa fecha
                    throw new AvailabilityException("Sorry, not availability at this hour");
                }
                else
                {
                    //if capacidad != 0 && capacidad >= reserva.cant_people
                    var resRest = PgConnection.Instance.ExecuteFunction(
                        "addreservationrestaurant(@fecha, @people, @fecha_reservacion, @userId, @restaurantId)",
                        reserva.fecha_res, reserva.cant_people, reserva.date, reserva.user_id, reserva.rest_id);

                    var idRest = Convert.ToInt32(resRest.Rows[0][0]);
                    Console.WriteLine("Id: ");
                    Console.WriteLine(idRest);
                    return(idRest);
                }
            }
        }
        /// <summary>
        ///     Metodo para listar Restaurantes reservados por id usuario
        /// </summary>
        /// <param name="user"></param>

        public List <Restaurant_res> getResRestaurant(int user) //operative with design patterns
        {
            var ReservationList = new List <Restaurant_res>();
            var table           = PgConnection.Instance.ExecuteFunction("getResRestaurant(@usuario)", user);

            for (var i = 0; i < table.Rows.Count; i++)
            {
                //Orden del SP id, ciudad, pais, restaurant, direccion, fecha_res, cant_persona
                var id                = Convert.ToInt32(table.Rows[i][0].ToString());
                var locationName      = table.Rows[i][1].ToString();
                var pais              = table.Rows[i][2].ToString();
                var restName          = table.Rows[i][3].ToString();
                var address           = table.Rows[i][4].ToString();
                var fecha_reservacion = table.Rows[i][5].ToString();
                var cant_persona      = Convert.ToInt32(table.Rows[i][6].ToString());

                var Restaurant_res = new Restaurant_res(id, locationName, pais, restName, address, fecha_reservacion, cant_persona);
                ReservationList.Add(Restaurant_res);
            }
            ;
            return(ReservationList);
        }
Beispiel #7
0
 public static AddResRestaurantCommand AddResRestaurantCommand(Restaurant_res restaurantDTO)
 {
     return(new AddResRestaurantCommand(restaurantDTO));
 }
Beispiel #8
0
 public AddResRestaurantCommand(Restaurant_res _resRestaurant)
 {
     this._resRestaurant = _resRestaurant;
 }