public IHttpActionResult PostBeneficiariosPunto(BeneficiariosPunto beneficiariosPunto) { if (!ModelState.IsValid) { return BadRequest(ModelState); } beneficiariosPunto.Fecha = DateTime.Now; //Calcular valor según equivalencias var benefClientes = db.BeneficiariosClientes.Where(b => b.BeneficiariosClienteId == beneficiariosPunto.BeneficiariosClienteId).FirstOrDefault(); if (benefClientes == null) throw new Exception("No se encontro la información solicitada"); var clienteId = benefClientes.ClienteId; if (clienteId == 0) throw new Exception("No se encontró el cliente"); var equiv = db.Equivalencias.Where(e => e.ClienteId == clienteId).OrderByDescending(o => o.EquivalenciaId).First(); if (equiv == null) throw new Exception("No se encontraron equivalencias"); var rel = equiv.Valor / equiv.Puntos; beneficiariosPunto.Valor = beneficiariosPunto.Puntos * rel; benefClientes.Saldo += beneficiariosPunto.Valor; benefClientes.Puntos += beneficiariosPunto.Puntos; db.Entry(benefClientes).State = EntityState.Modified; db.BeneficiariosPuntos.Add(beneficiariosPunto); db.SaveChanges(); return CreatedAtRoute("DefaultApi", new { id = beneficiariosPunto.BeneficiariosPuntoId }, beneficiariosPunto); }
public IHttpActionResult PutBeneficiariosPunto(int id, BeneficiariosPunto beneficiariosPunto) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != beneficiariosPunto.BeneficiariosPuntoId) { return BadRequest(); } db.Entry(beneficiariosPunto).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!BeneficiariosPuntoExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); }