public Offer MakeAction(int id, Offer.ACTION action) { using (CompraAppContext db = new CompraAppContext()) { Offer offerForUpdate = db.Offers.Find(id); if (Exists(offerForUpdate)) { if (checkAction(offerForUpdate, action)) { if (action == Offer.ACTION.ACCEPTED) { setRejectedToOffersLosers(db, offerForUpdate); closePublicationByAcceptedOffer(db, offerForUpdate); } offerForUpdate.State = (int)action; db.Offers.Attach(offerForUpdate); db.Entry(offerForUpdate).State = EntityState.Modified; db.SaveChanges(); return(offerForUpdate); } else { throw new Exception("Error: Offerta ya procesada como aceptada, cancelada o rechazada."); } } else { throw new Exception("Error: No existe la oferta."); } } }
private bool checkAction(Offer currentOffer, Offer.ACTION action) { if (currentOffer.State == (int)Offer.ACTION.OPEN) { return(true); } else { return(false); } }
public IHttpActionResult PostOfferAction(int id, Offer.ACTION action) { try { return(Ok(offerService.MakeAction(id, action))); } catch (Exception e) { return(BadRequest(e.Message)); } }