Pop

59.Servicios Web.API REST. MVC .Método Delete- Visual Studio 2017

59-.Servicios Web.API REST. MVC - Método Delete

- En este capítulo del curso de programación en c# con visual studio 2017,vamos a ver nuestro último método de esta miniserie API REST.  En esta entrada vamos a crearnos un método DELETE. Este método lo utilizaremos para eliminar  usuarios que ya existen en nuestro sistema. La petición a nuestro método nos permitira eliminar usuarios que tengamos registrados en nuestro sistema.

- Para poder realizar esta tarea además de crearnos un método en nuestro controlador que nos permita llamarlos desde un cliente, debemos crear un procedimiento almacenado en nuestra base de datos que valide si existe el usuario en nuestra base de datos y que no tenga pedidos asociados.

- Os dejo el ejemplo en el video:


 - También os dejo el código que hemos visto en nuestro ejemplo:

  • Método delete de nuestro controlador:
    [AcceptVerbs("DELETE")]
    public Resultado BorraUsuario(Usuario u)
        {
        
            Resultado r = new Resultado();

            SqlConnection conexion = new SqlConnection(ConfigurationManager.ConnectionStrings["EmpresaConnectionString"].ConnectionString);

            try
            {
                conexion.Open();
                SqlCommand com = conexion.CreateCommand();
                com.CommandType = System.Data.CommandType.StoredProcedure;
                com.CommandText = "dbo.BorrarUsuario";
                com.Parameters.Add("@email", SqlDbType.VarChar, 255).Value = u.Email;
                com.ExecuteNonQuery();
                r.TodoCorrecto = true;
            }
            catch (SqlException ex)
            {
                r.TodoCorrecto = false;
                r.Error = ex.Message;
            }
            catch (Exception ex)
            {
                r.TodoCorrecto = false;
                r.Error = ex.ToString();
            }
            finally
            {
                if (conexion != null && conexion.State == System.Data.ConnectionState.Open)
                    conexion.Close();

                conexion.Dispose();
            }

            return r;
        }

  • Objeto usuario:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Pruebas.Models
{
    public class Usuario
    {
        string nombre = String.Empty;
        string email = String.Empty;
        byte[] pass = null;
        string codPais = String.Empty;

        public string Nombre { get => nombre; set => nombre = value; }
        public string Email { get => email; set => email = value; }
        public byte[] Pass { get => pass; set => pass = value; }
        public string CodPais { get => codPais; set => codPais = value; }
    }
}

  • Procedimiento almacenado que se encarga de borrar al usaurio si procede:
ALTER PROCEDURE [dbo].[BorrarUsuario]
    @email varchar(255)
   
AS
BEGIN

    SET NOCOUNT ON;

    DECLARE @emailAux varchar(255)
    DECLARE @idAux int

    SELECT  @emailAux=Email,@idAux=IdUsuarios FROM Usuarios WITH(NOLOCK) WHERE email= @email

    IF(@emailAux='')
    BEGIN
        RAISERROR('No existe un usuario con este email',16,1);
        RETURN -1
    END

    IF(    SELECT  count(*) FROM dbo.Pedidos WITH(NOLOCK) WHERE IdUsuario=@idAux) > 0
    BEGIN
        RAISERROR('No podemos eliminar un usuario que tenga pedidos',16,1);
        RETURN -1
    END

    DELETE FROM dbo.Usuarios WHERE email= @email

END

No hay comentarios:

Publicar un comentario

Curso .NET Core en C# - 34.Creamos nuestro propio log

34.Creamos nuestro propio log Hola a todos. En este curso, analizaremos todos los conceptos básicos, intermedios y avanzados de  ASP.NET...