Let's create an extension method to validate if our ViewModel has any null properties.
To begin with we will create a base class so that all of 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 only contain extension methods and we will have our method that will handle 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 simply add the namespace of class 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...
}
}