Let’s create an extension method to validate if our Viewmodel has any null property.
To start we will create a base class so that all our Viewmodels inherit from it, so we can distinguish our Viewmodels from other classes in the project:
public abstract class ViewModelBase
{
// Adicione propriedades que sejam comuns para todas suas ViewModels, aqui é apenas um exemplo.
public int Identificador { get; set; }
}
Next we will make our specific Viewmodels inherit from our abstract class ViewModelBase
, below an example:
public class PessoaViewModel : ViewModelBase
{
public string Nome { get; set; }
public string Sexo { get; set; }
public DateTime? DataNascimento { get; set; }
public int? QuantidadeFilhos { get; set; }
}
Next we will create a class that will contain only extension methods and in it we will have our method that will treat if our Viewmodel has some null field:
using System;
using System.Reflection;
namespace Projeto.Utilitario
{
public static class Extensions
{
public static bool ViewModelPossuiAlgumaPropriedadeNulaOuVazia<T>(this T obj) where T : ViewModelBase
{
foreach (PropertyInfo propriedade in obj.GetType().GetProperties())
{
string value = Convert.ToString(propriedade.GetValue(obj));
if (string.IsNullOrWhiteSpace(value))
return true;
}
return false;
}
}
}
To use our extension method just add the class namespace Extensions
and call the method:
using Projeto.Utilitario;
static void Main(string[] args)
{
PessoaViewModel pessoaViewModel = new PessoaViewModel
{
Nome = "Pedro",
Sexo = "Masculino",
DataNascimento = DateTime.Now
};
if (pessoaViewModel.ViewModelPossuiAlgumaPropriedadeNulaOuVazia())
{
// Implemente sua lógica caso possua algo vazio...
}
}