/// <summary>
        ///     Metodo para aƱadir un Crucero.
        /// </summary>
        /// <param name="cruiser">Datos a ser guardados en tipo crucero</param>
        /// <returns>ID del registro del crucero en la base de datos</returns>
        /// <exception cref="InvalidAttributeException">Algun atributo tenia un valor invalido</exception>
        /// <exception cref="DatabaseException">
        ///     Lanzada si ocurre un fallo al ejecutar la funcion en la bse de
        ///     datos
        /// </exception>
        public static int AddCruiser(Cruiser cruiser)
        {
            cruiser.Validate();
            var table = PgConnection.Instance.ExecuteFunction(
                "AddShip(@name,@capacity,@loadingcap,@model,@line,@picture)", cruiser.Name, cruiser.Capacity,
                cruiser.LoadingShipCap, cruiser.Model, cruiser.Line, cruiser.Picture);
            var id = Convert.ToInt32(table.Rows[0][0]);

            return(id);
        }
 /// <summary>
 ///     Metodo para actualizar los datos de un Crucero.
 /// </summary>
 /// <param name="cruiser">Datos a ser actualizados en tipo crucero guardados</param>
 /// <returns>ID del registro del crucero en la base de datos</returns>
 /// <exception cref="InvalidAttributeException">Algun atributo tenia un valor invalido</exception>
 /// <exception cref="NullCruiserException">El metodo recibio null como parametro</exception>
 /// <exception cref="CruiserNotFoundException">No se encontro el crucero con el Id sumunistrado en los parametros</exception>
 /// <exception cref="DatabaseException">
 ///     Lanzada si ocurre un fallo al ejecutar la funcion en la bse de
 ///     datos
 /// </exception>
 public static Cruiser UpdateCruiser(Cruiser cruiser)
 {
     try
     {
         cruiser.Validate();
         var table = PgConnection.Instance.ExecuteFunction(
             "ModifyShip(@Id, @Status, @Name, @Capacity, @Loadcap, @Model, @line, @Picture)", cruiser.Id,
             cruiser.Status, cruiser.Name, cruiser.Capacity, cruiser.LoadingShipCap, cruiser.Model, cruiser.Line,
             cruiser.Picture);
         var updatedId = Convert.ToInt32(table.Rows[0][0]);
         return(cruiser);
     }
     catch (NullReferenceException)
     {
         throw new NullCruiserException("El crucero no puede ser null");
     }
     catch (InvalidCastException)
     {
         throw new CruiserNotFoundException("Crucero no encontrado");
     }
 }
Example #3
0
 public void EmptyPictureTest()
 {
     cruiser = new Cruiser("Concordia", true, 100, 1000, "model1", "line1", "");
     Assert.Throws <InvalidAttributeException>(() => cruiser.Validate());
 }
Example #4
0
 public void EmptyNameTest()
 {
     cruiser = new Cruiser("", true, 100, 1000, "model1", "Line1", "picture.jpg");
     Assert.Throws <InvalidAttributeException>(() => cruiser.Validate());
 }
Example #5
0
 public void NullPictureTest()
 {
     cruiser = new Cruiser("Concordia", true, 100, 1000, "Model1", "Line1", null);
     Assert.Throws <InvalidAttributeException>(() => cruiser.Validate());
 }
Example #6
0
 public void ZeroLoadingCapTest()
 {
     cruiser = new Cruiser("Concordia", true, 0, 1000, "Model1", "Line1", "Picture.jpg");
     Assert.Throws <InvalidAttributeException>(() => cruiser.Validate());
 }
Example #7
0
 public void NullNameTest()
 {
     cruiser = new Cruiser(null, true, 100, 1000, "Model1", "Line1", "Picture.jpg");
     Assert.Throws <InvalidAttributeException>(() => cruiser.Validate());
 }