private PessoaJuridicaEntity UpdateEntity(PessoaJuridicaEntity entity, PessoaJuridicaUpdateModel model) { entity.Id = model.Id; entity.PessoaId = model.PessoaId; entity.RazaoSocial = model.RazaoSocial; entity.NomeFantasia = model.NomeFantasia; entity.CNPJ = model.CNPJ; entity.Pessoa = _mapper.Map <PessoaEntity>(model.Pessoa); entity.Socios = _mapper.Map <List <PessoaVinculoEntity> >(model.Socios); return(entity); }
public PessoaJuridicaEntity Create(PessoaJuridicaEntity entity) { ValidarCnpj(entity); int qtdEnderecos = entity.Enderecos.Count; if (qtdEnderecos < 1 || qtdEnderecos > 3) { throw new Exception("A quantidade de endereços deve ser no mínimo 1 (um) e no máximo 3 (três)."); } const decimal valorLimiteCreditoInicial = 100m; entity.ValorLimiteCredito = valorLimiteCreditoInicial; entity.Id = ObjectId.GenerateNewId(); pessoa.InsertOne(entity); return(entity); }
public void Update(string id, PessoaJuridicaEntity entity) { ValidarCnpj(entity, id); var idsEnderecos = new List <string>(); entity.Enderecos.ForEach(item => idsEnderecos.Add(item.Id.ToString())); GetById(id).Enderecos.ForEach(item => idsEnderecos.Add(item.Id.ToString())); idsEnderecos = idsEnderecos.Distinct().ToList(); if (idsEnderecos.Count > 3) { throw new Exception("A quantidade de endereços deve ser no mínimo 1 (um) e no máximo 3 (três)."); } if (entity.ValorLimiteCredito < 0m) { throw new Exception("O valor de limite de crédito não pode ser negativo."); } pessoa.ReplaceOne(ps => ps.Id.ToString() == id, entity); }
private void ValidarCnpj(PessoaJuridicaEntity entity, string id = null) { if (!ValidadorCNPJ.CNPJValido(entity.Cnpj)) { throw new Exception("O CNPJ informado não é válido."); } if (id is null) { if (GetAll().Count(item => item.Cnpj == entity.Cnpj) > 0) { throw new Exception("O CNPJ informado já esta sendo utilizado em outro registro."); } } else { if (GetAll().Count(item => item.Cnpj == entity.Cnpj && item.Id.ToString() != id) > 0) { throw new Exception("O CNPJ informado já esta sendo utilizado em outro registro."); } } }