public Dtos.Cliente UpdateCliente(Dtos.Cliente dto)
        {
            ValidateCliente(dto);
            var entity = CdpContext.Clientes.Single(e => e.Id == dto.Id);

            CdpContext.SaveChanges();

            return(Mapper.Map <Entities.Cliente, Dtos.Cliente>(entity));
        }
        private void ValidateCliente(Dtos.Cliente dto)
        {
            var entity = CdpContext.Clientes.FirstOrDefault(c => string.Equals(c.Cuit, dto.Cuit));

            if (entity != null && entity.Id != dto.Id)
            {
                throw new Exception(string.Format("El {0} ya se encuentra asignado a otro cliente", CDPSession.Current.Usuario.CurrentEmpresaLabelCuit));
            }
        }
        public Dtos.Cliente CreateCliente(Dtos.Cliente dto)
        {
            ValidateCliente(dto);
            var empresa = CdpContext.Empresas.Single(e => e.Id == CDPSession.Current.Usuario.CurrentEmpresa.Id);
            var idSapOrganizacionDeVenta = int.Parse(empresa.IdSapOrganizacionDeVenta);
            var lastClienete             = CdpContext.Clientes.OrderByDescending(c => c.Id).FirstOrDefault(c => c.IdSapOrganizacionDeVenta == idSapOrganizacionDeVenta && c.EsProspecto);
            var currentId = int.Parse(lastClienete != null ? lastClienete.Id : "9299999");

            var entity = new Entities.Cliente
            {
                Id                       = (++currentId).ToString(),
                NombreFantasia           = dto.RazonSocial,
                RazonSocial              = dto.RazonSocial,
                Cuit                     = dto.Cuit,
                IdTipoDocumentoSap       = 80,
                EsProspecto              = true,
                Enabled                  = true,
                CreateDate               = DateTime.Now,
                Calle                    = string.Empty,
                ClaveGrupo               = string.Empty,
                Cp                       = string.Empty,
                DescripcionGe            = string.Empty,
                Dto                      = string.Empty,
                GrupoComercial           = string.Empty,
                Numero                   = string.Empty,
                Piso                     = string.Empty,
                Poblacion                = string.Empty,
                Tratamiento              = string.Empty,
                IdSapOrganizacionDeVenta = string.IsNullOrEmpty(empresa.IdSapOrganizacionDeVenta) ? 0 : idSapOrganizacionDeVenta
            };

            CdpContext.Clientes.Add(entity);
            CdpContext.SaveChanges();

            return(Mapper.Map <Entities.Cliente, Dtos.Cliente>(entity));
        }