public Cliente Criar(Guid siteId, ClienteDto clienteDto)
        {
            Validar(siteId, clienteDto);

            var cliente = _fabricaCliente.Criar(siteId, Guid.NewGuid(), clienteDto);
            _repositorioClientes.Inserir(cliente);
            return cliente;
        }
        private static int CrearNuevaCuenta(string cuit,int empresa)
        {
            var cuentaNueva = new ClienteDto(
                    new KeyCliente(empresa, HelperPersona.CuitToDni(cuit), GetNumeroNuevo(empresa)),
                        GetParentesco("Titular"), 1);
            cuentaNueva.Save();

            return cuentaNueva.Key.NroCuenta;
        }
 public virtual Cliente Criar(Guid siteId, Guid id, ClienteDto clienteDto)
 {
     return new Cliente(
             siteId, 
             id,
             clienteDto.GrupoId.ParaGuid(),
             new Cnpj(clienteDto.Cnpj),
             clienteDto.Nome,
             clienteDto.Codigo,
             new Endereco(clienteDto.Logradouro, clienteDto.Numero, clienteDto.Complemento, clienteDto.Bairro, clienteDto.Cidade, clienteDto.Estado, clienteDto.Cep),
             new CorreioEletronico(clienteDto.CorreioEletronicoLoja),
             new CorreioEletronico(clienteDto.CorreioEletronicoManutencao),
             new CorreioEletronico(clienteDto.CorreioEletronicoAdministracao));
 }
        private void Validar(Guid siteId, string id, ClienteDto clienteDto)
        {
            if (!id.GuidValido())
                throw new FormatoInvalido("O identificador de cliente informado não é válido.");

            if (_repositorioClientes.BuscarPorId(siteId, new Guid(id)) == null)
                throw new RecursoNaoEncontrado("O cliente não foi encontrado.");

            if (!String.IsNullOrWhiteSpace(clienteDto.Nome) && _repositorioClientes.BuscarPorNomeExcetoId(siteId, clienteDto.Nome, id.ParaGuid()) != null)
                throw new JaExisteUmRecursoComEstasCaracteristicas("Já existe um cliente informado com este nome.");

            if (!String.IsNullOrWhiteSpace(clienteDto.Cnpj) && _repositorioClientes.BuscarPorCnpjExcetoId(siteId, clienteDto.Cnpj, id.ParaGuid()) != null)
                throw new JaExisteUmRecursoComEstasCaracteristicas("Já existe um cliente informado com este CNPJ.");

            if (!String.IsNullOrWhiteSpace(clienteDto.Codigo) && _repositorioClientes.BuscarPorCodigoExcetoId(siteId, clienteDto.Codigo, id.ParaGuid()) != null)
                throw new JaExisteUmRecursoComEstasCaracteristicas("Já existe um cliente informado com este código.");

            if (clienteDto.GrupoId.GuidValido() && _repositorioGrupos.BuscarPorId(siteId, clienteDto.GrupoId.ParaGuid()) == null)
                throw new FormatoInvalido("O grupo informado para o cliente não existe.");
        }
        private void Validar(Guid siteId, ClienteDto clienteDto)
        {
            if (clienteDto.Id != Guid.Empty)
                throw new FormatoInvalido("O identificador de cliente não deve ser informado neste contexto.");

            if (!clienteDto.GrupoId.GuidValido())
                throw new FormatoInvalido("O identificador de grupo do cliente não é válido.");

            if (!String.IsNullOrWhiteSpace(clienteDto.Nome) && _repositorioClientes.BuscarPorNome(siteId, clienteDto.Nome) != null)
                throw new JaExisteUmRecursoComEstasCaracteristicas("Já existe um cliente informado com este nome.");

            if (!String.IsNullOrWhiteSpace(clienteDto.Cnpj) && _repositorioClientes.BuscarPorCnpj(siteId, clienteDto.Cnpj) != null)
                throw new JaExisteUmRecursoComEstasCaracteristicas("Já existe um cliente informado com este CNPJ.");

            if (!String.IsNullOrWhiteSpace(clienteDto.Codigo) && _repositorioClientes.BuscarPorCodigo(siteId, clienteDto.Codigo) != null)
                throw new JaExisteUmRecursoComEstasCaracteristicas("Já existe um cliente informado com este código.");

            if (clienteDto.GrupoId.GuidValido() && _repositorioGrupos.BuscarPorId(siteId, clienteDto.GrupoId.ParaGuid()) == null)
                throw new FormatoInvalido("O grupo informado para o cliente não existe.");
        }
 public void Modificar(Guid siteId, string id, ClienteDto clienteDto)
 {
     Validar(siteId, id, clienteDto);
     _repositorioClientes.Editar(_fabricaCliente.Criar(siteId, id.ParaGuid(), clienteDto));
 }
 public virtual Cliente Criar(Guid siteId, ClienteDto clienteDto)
 {
     return Criar(siteId, clienteDto.Id, clienteDto);
 }