public IHttpActionResult PostCliente(Cliente cliente)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            cliente.Tercero.FechaIngreso = DateTime.Now;

            if (cliente.Tercero.Usuarios.Count == 0) throw new Exception("Faltan los datos de login");

            cliente.Tercero.Usuarios.First().RolId = (int)Roles.Cliente;

            db.Clientes.Add(cliente);
            db.SaveChanges();

            return CreatedAtRoute("DefaultApi", new { id = cliente.ClienteId }, cliente);
        }
        public IHttpActionResult PutCliente(int id, Cliente cliente)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            if (id != cliente.ClienteId)
            {
                return BadRequest();
            }

            //if (cliente.IsBeneficiario)
            //{
            //    var afiliado = db.Afiliados.FirstOrDefault(c => c.ClienteId == cliente.ClienteId);
            //    if (afiliado == null)
            //    {
            //        db.Afiliados.Add(new Afiliado
            //        {
            //            ClienteId = cliente.ClienteId
            //        });
            //    }
            //}//todo: falta cuando un cliente deja de ser beneficiario

            cliente.Afiliados = null;
            cliente.AfiliadosClientes = null;
            cliente.BeneficiariosClientes = null;
            cliente.Tercero.Clientes = null;
            cliente.Tercero.Beneficiarios = null;
            cliente.Tercero.Usuarios = null;
            db.Entry(cliente).State = EntityState.Modified;
            db.Entry(cliente.Tercero).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ClienteExists(id))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return StatusCode(HttpStatusCode.NoContent);
        }