public void AddReservationFlightTest()
        {
            FlightRes user    = new FlightRes("A-1", "2019-01-01", 1, 1, 1);
            int       id_user = f.AddReservationFlight(user);

            Assert.NotNull(id_user);
        }
        /// <param name="numseat">Cantidad de asiento</param>
        /// <param name="_id_fli">Id del vuelo</param>
        /// <returns>Devuelve los numeros de asientos de una reserva</returns>
        public string conSeatNum(int numseat, int _id_fli)
        {
            var table1 = new DataTable();
            var res    = new FlightRes();

            try{
                table1       = PgConnection.Instance.ExecuteFunction("getSum(@idflight)", _id_fli);
                res._sum_pas = Convert.ToInt32(table1.Rows[0][0].ToString());
                Console.WriteLine(res._sum_pas);
                int    cont = res._sum_pas;
                string seat = "";
                if (numseat != 0)
                {
                    for (int i = 0; i < numseat; i++)
                    {
                        cont  = cont + 1;
                        seat += "A-" + cont + ",";
                    }
                }
                else
                {
                    return("0");
                }
                return(seat);
            }catch (InvalidStoredProcedureSignatureException) {
                throw new InvalidStoredProcedureSignatureException("Tienes un error en el Stored Procedure");
            }
        }
        /// <param name="name_city">Nombre de la ciudad</param>
        /// <returns>Devuelve el id de la ciudad</returns>
        public int GetIDLocation(string name_city)
        {
            var res   = new FlightRes();
            var table = new DataTable();

            try{
                table        = PgConnection.Instance.ExecuteFunction("GetIDLocation(@name_city)", name_city);
                res._id_city = Convert.ToInt32(table.Rows[0][0].ToString());
                return(res._id_city);
            }catch (InvalidStoredProcedureSignatureException) {
                throw new InvalidStoredProcedureSignatureException("Tienes un error en el Stored Procedure");
            }
        }
        /// <summary>Busca las reservas de un usuario</summary>
        /// <param name="id">id del usuario </param>
        /// <returns>Devuelve la lista de reservas de un usuario</returns>
        public List <Entity> GetReservationFlight(int id)
        {
            var FlightRes          = new List <Entity>();
            var table              = new DataTable();
            var res                = new FlightRes();
            var reservation_flight = new FlightRes();

            try{
                table = PgConnection.Instance.ExecuteFunction(GET_RES_FLIGHT, id);
                var table2 = new DataTable();

                for (int i = 0; i < table.Rows.Count; i++)
                {
                    table2 = PgConnection.Instance.ExecuteFunction(GET_NAME_LOCATION,
                                                                   Convert.ToInt32(table.Rows[i][6].ToString()));

                    res._id           = Convert.ToInt32(table.Rows[i][0]);
                    res._price        = Convert.ToInt32(table.Rows[i][1]);
                    res._timestamp    = Convert.ToString(table.Rows[i][2].ToString());
                    res._seatNum      = Convert.ToString(table.Rows[i][3].ToString());
                    res._namecountryI = table.Rows[i][4].ToString();
                    res._namecityI    = table.Rows[i][5].ToString();
                    res._numPas       = Convert.ToInt32(table.Rows[i][7].ToString());
                    res._namecityV    = table2.Rows[0][1].ToString();
                    res._namecountryV = table2.Rows[0][2].ToString();


                    reservation_flight = new FlightRes(res._id, res._price,
                                                       res._timestamp, res._seatNum, res._namecityI, res._namecountryI,
                                                       res._namecityV, res._namecountryV, res._numPas);



                    FlightRes.Add(reservation_flight);
                }

                if (FlightRes.Count.Equals(0))
                {
                    throw new EmptyListReservation("Disculpe no se encontraron reservas");
                }
                return(FlightRes);
            }catch (DBFailedException e) {
                throw new DBFailedException("Tienes un error en la base de datos", e);
            }catch (InvalidStoredProcedureSignatureException) {
                throw new InvalidStoredProcedureSignatureException("Tienes un error en el Stored Procedure");
            }
        }
        /// <summary>Genera string con nombres de asientos a reservar</summary>
        /// <param name="numseat">Cantidad de asientos a reservar</param>
        /// <param name="_id_fli">Id del vuelo</param>
        /// <returns>Devuelve los numeros de asientos a reservar</returns>
        public string ConSeatNum(int numseat, int _id_fli)
        {
            var table1        = new DataTable();
            var capacitytable = new DataTable();
            var res           = new FlightRes();

            try{
                //Obtiene la capacidad del vuelo
                capacitytable = PgConnection.Instance.ExecuteFunction(GET_CAPACITY, _id_fli);
                int planecapacity = Convert.ToInt32(capacitytable.Rows[0][0].ToString());

                //Obtengo la cantidad de reservas del vuelo (asientos reservados)
                table1 = PgConnection.Instance.ExecuteFunction(GET_SUM, _id_fli);

                //Almacena la cantidad de reservas en la instancia reserva
                res._sum_pas = Convert.ToInt32(table1.Rows[0][0].ToString());

                Console.WriteLine("Cant reservada: " + res._sum_pas);
                Console.WriteLine("Capacidad del avión: " + planecapacity);

                int    cont = res._sum_pas;
                string seat = "";

                //Si la cantidad de puestos disponibles es mayor o igual a la cantidad de puestos a reservar
                if ((planecapacity - res._sum_pas) >= numseat)
                {
                    //Concatena un string con el numero de cada nueva reserva
                    //Si existen N reservas entonces las nuevas reservas sera: A-N+1, A-N+2, A-N+3...
                    for (int i = 0; i < numseat; i++)
                    {
                        cont  = cont + 1;
                        seat += "A-" + cont + ",";
                    }
                }
                else
                {
                    return("0");
                }
                return(seat);
            }catch (InvalidStoredProcedureSignatureException) {
                throw new InvalidStoredProcedureSignatureException("Tienes un error en el Stored Procedure");
            }
        }
        public void SetUp()
        {
            //Instancia del mapper
            ResFlightMapper = MapperFactory.CreateReservationFlightMapper();

            //Instancia el DTO
            flightDTO = new FlightResDTO("", "2019-7-6 23:00", 1, 1, 1);

            //Instancia el objeto reserva de vuelo
            entity = new FlightRes("", "2019-7-6 23:00", 1, 1, 1);

            //Instancia una lista de DTO
            dtos = new List <FlightResDTO>();
            dtos.Add(flightDTO);

            //Instancia una lsita de entidades
            entities = new List <FlightRes>();
            entities.Add(entity);
        }
        //Convierte un dto a una entidad y la compara con otra entidad
        public void CreateEntityTest()
        {
            FlightRes entitycopy = ResFlightMapper.CreateEntity(flightDTO);

            List <String> a = new List <String>();

            a.Add(entity._seatNum.ToString());
            a.Add(entity._timestamp.ToString());
            a.Add(entity._numPas.ToString());
            a.Add(entity._id_user.ToString());
            a.Add(entity._id_fli.ToString());

            List <String> b = new List <String>();

            b.Add(entitycopy._seatNum.ToString());
            b.Add(entitycopy._timestamp.ToString());
            b.Add(entitycopy._numPas.ToString());
            b.Add(entitycopy._id_user.ToString());
            b.Add(entitycopy._id_fli.ToString());


            Assert.AreEqual(a, b);
        }
示例#8
0
 public static AddReservationFlightCommand CreateAddReservationFlightCommand(FlightRes flight)
 {
     return(new AddReservationFlightCommand(flight));
 }
示例#9
0
 public AddReservationFlightCommand(FlightRes flightReservation)
 {
     this.FlightReservation = flightReservation;
 }