public ActionResult GetFairData(AjaxFairViewModel model) { Fair fair = null; using (var db = new ApplicationDbContext()) { fair = ( from fairdb in db.Fairs where fairdb.Id.ToString() == model.Id select fairdb ).FirstOrDefault(); } if (fair == null) { return(new HttpStatusCodeResult(HttpStatusCode.NotFound)); } else { return(Json(new AjaxFairViewModel { Id = fair.Id.ToString(), StartDate = fair.StartDate, EndDate = fair.EndDate, PickingStartDate = fair.PickingStartDate, PickingEndDate = fair.PickingEndDate, SaleStartDate = fair.SaleStartDate, SaleEndDate = fair.SaleEndDate, RetrievalStartDate = fair.RetrievalStartDate, RetrievalEndDate = fair.RetrievalEndDate, Trimester = fair.Trimester }, contentType: "application/json")); } }
public ActionResult DeleteFair(AjaxFairViewModel model) { List <Fair> fairs = new List <Fair>(); using (var db = new ApplicationDbContext()) { if (model.Id != null) { var fair = db.Fairs.FirstOrDefault(fairDb => fairDb.Id.ToString() == model.Id); if (fair != null) { fairs.Add(fair); } else { return(new HttpStatusCodeResult(HttpStatusCode.NotFound)); } } else { fairs = model.IdsList.ConvertAll(new Converter <string, Fair>(id => db.Fairs.FirstOrDefault(fair => fair.Id.ToString() == id))); if (fairs.Any(fair => fair == null)) { return(new HttpStatusCodeResult(HttpStatusCode.NotFound)); } } foreach (var fair in fairs) { db.Fairs.Remove(fair); } db.SaveChanges(); } return(Json(new { }, contentType: "application/json")); }
public ActionResult Fair(AjaxFairViewModel model) { // TODO: Transfert database specifics to a repository. using (var db = new ApplicationDbContext()) { Fair fair; if (model.Id == null) { fair = new Fair(); } else { fair = db.Fairs.FirstOrDefault(fairDb => fairDb.Id.ToString() == model.Id); if (fair == null) { return(new HttpStatusCodeResult(HttpStatusCode.NotFound)); } } fair.SetDates(model.StartDate, model.EndDate) .SetDates(model.PickingStartDate, model.PickingEndDate, forPhase: FairPhase.PICKING) .SetDates(model.SaleStartDate, model.SaleEndDate, forPhase: FairPhase.SALE) .SetDates(model.RetrievalStartDate, model.RetrievalEndDate, forPhase: FairPhase.RETRIEVAL); fair.Trimester = model.Trimester; if (model.Id == null) { db.Fairs.Add(fair); } // Updating all past offers until the fair start date before this fair var pastFair = ( from dbFair in db.Fairs where dbFair.StartDate < fair.StartDate orderby dbFair.StartDate descending select dbFair ).FirstOrDefault(); var pastFairStartDate = pastFair?.StartDate ?? new DateTime(1970, 01, 01); var pastOffers = ( from dbOffer in db.Offers where dbOffer.StartDate < fair.StartDate && dbOffer.StartDate >= pastFairStartDate && dbOffer.ManagedByFair select dbOffer ); // Removing the old offers managed by the fair. foreach (var offer in fair.Offers) { fair.Offers.Remove(offer); } // Adding the new ones (including the old ones that are still valid for this fair). foreach (var offer in pastOffers) { fair.Offers.Add(offer); } db.SaveChanges(); } return(Json(new { }, contentType: "application/json")); }