public bool IsValid() { if (this.Code.IsEmpty()) { throw new ArgumentException("É necessário enviar o código da loja"); } if (!Cnpj.IsNullOrWhiteSpace() && ((Cnpj.Length <= 11 && !Cnpj.IsValidCPF()) || (Cnpj.Length > 11 && !Cnpj.IsValidCNPJ()))) { throw new ArgumentException("CNPJ inválido"); } if (Name.IsNullOrWhiteSpace()) { throw new ArgumentException("Nome de loja inválido"); } foreach (var item in Addresses) { if (item.IsNull()) { throw new ArgumentException("Nenhum endereço fornecido para a loja"); } if (item.ContactName.IsNullorEmpty()) { throw new ArgumentException("Endereço sem contato"); } if (item.ZipCode.IsNullorEmpty()) { throw new ArgumentException("Endereço sem CEP"); } if (item.Street.IsNullorEmpty()) { throw new ArgumentException("Endereço sem logradouro"); } if (item.Number.IsNullorEmpty()) { throw new ArgumentException("Endereço sem número"); } if (item.City.IsNullorEmpty()) { throw new ArgumentException("Endereço sem cidade"); } if (item.State.IsNullorEmpty()) { throw new ArgumentException("Endereço sem estado"); } } return(true); }