Cómo simplificar la verificación nula
public class MyEmployee { public string FirstName; public string LastName; public string Age; public string Phone; public string Gender; }He implementado la siguiente verificación de condición nula
public async Task<bool> ValidateClient(MyEmployee Client) { **if(Client.FirstName == null ||Client.LastName==null ||Client.Age== null ||Client.Gender ==null||Client.Phone==null)** { throw new Argumentexception("Employee details to be provided") } }Estoy validando todas las propiedades de la clase Empleado con una condición de verificación nula, ¿se puede simplificar esto en C#?
Dado que está utilizando el núcleo de asp.net, tendrá la opción de validar su modelo decorando las propiedades:
public class MyEmployee { [Required] public string FirstName; [Required] public string LastName; [Required] public string Age; [Required] public string Phone; [Required] public string Gender; }si tiene eso, puede validar el modelo desde dentro de una llamada de acción HTTP.
public async Task<IActionResult> OnPostAsync(MyEmployee model) { if (!ModelState.IsValid) { return BadRequest(); } await yourUpdate(); return Ok(); }Nota: esto solo funciona cuando usa los enlazadores de modelos, que están habilitados de manera predeterminada en las acciones de MVC y API.
Hay varios atributos de validación disponibles. Agregar, por ejemplo , StringLength le da la opción de validar también para una longitud> 0.
También hay disponibles varias opciones predeterminadas y de expresiones regulares.
Pone la validación cerca de su modelo y lo deja con un método ActionResult agradable y limpio.
Consulte también los documentos de Microsoft
Más atributos incorporados:
Estos son algunos de los atributos de validación incorporados:
Hay toneladas de estos, e incluso puedes construirlos tú mismo también.
Con Linq puedes separar los datos de la operación
if(new[] { Client.FirstName, Client.LastName, ..., Client.Phone } .Any(field => field is null))string enumerando todas las propiedades de cadena de su DTOACTUALIZACIÓN # 1 : Comprobación de cadena vacía también
if(new[] { Client.FirstName, Client.LastName, ..., Client.Phone } .Any(string.IsNullOrEmpty))IsNullOrEmpty de la string .string.IsNullOrWhitespaceAny anterior es una forma abreviada de .Any(field => string.IsNullOrEmpty(field))