public virtual void IsValid() { var validationErros = new List <string>(); if (StartTime.IsNull()) { validationErros.Add("Horario de início inválido."); } if (EndTime.IsNull()) { validationErros.Add("Horario de término inválido."); } if (validationErros.Count <= 0 && StartTime.CompareTo(EndTime) >= 0) { validationErros.Add("Horario de início não pode ser maior ou igual ao horário de término."); } var errorMessage = string.Join(" | ", validationErros); if (!string.IsNullOrWhiteSpace(errorMessage)) { throw new ArgumentException(errorMessage); } }