コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }