public ActionResult Create(ClienteDTO cliente)
 {
     try
     {
         if (ModelState.IsValid)
         {
             _clientesService.AltaCliente(cliente);
             return RedirectToAction("Index");
         }
         return View();
     }
     catch
     {
         return View();
     }
 }
        public ClienteDTO AltaCliente(ClienteDTO clienteDTO)
        {
            using (var unitOfWork = _unitOfWorkFactory.Create())
            {
                Ensure.Argument.NotNull(clienteDTO, "cliente not null");

                var cliente = new Cliente(clienteDTO.Nombre,
                                         clienteDTO.Apellidos,
                                         clienteDTO.Telefono,
                                         clienteDTO.Vip);

                _clienteRepository.Add(cliente);
                unitOfWork.Commit();

                return cliente.Map<Cliente,ClienteDTO>();
            }
        }
        public void ActualizarDatosCliente(ClienteDTO clienteDTO)
        {
            using (var unitOfWork = _unitOfWorkFactory.Create())
            {
                Ensure.Argument.NotNull(clienteDTO, "cliente not null");

                var cliente = _clienteRepository.Get(clienteDTO.Id);
                Ensure.NotNull<NotFoundException>(cliente, String.Format("Client with id {0} not found", clienteDTO.Id));

                cliente.ChangeNombre(clienteDTO.Nombre, clienteDTO.Apellidos);
                cliente.ChangeTelefono(clienteDTO.Telefono);
                cliente.SetVip(clienteDTO.Vip);

                _clienteRepository.Update(cliente);
                unitOfWork.Commit();

                clienteDTO = cliente.Map<Cliente, ClienteDTO>();
            }
        }
 public ActionResult Edit(int id, ClienteDTO cliente)
 {
     try
     {
         if (ModelState.IsValid)
         {
             cliente.Id = id;
             _clientesService.ActualizarDatosCliente(cliente);
             return RedirectToAction("Index");
         }
         return View();
     }
     catch
     {
         return View();
     }
 }