예제 #1
0
        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);
        }