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 async Task <IActionResult> Edit(Fair fair) { if (ModelState.IsValid) { _Db.Update(fair); await _Db.SaveChangesAsync(); TempData["save"] = "Update successfully"; return(RedirectToAction(nameof(Index))); } return(View()); }
public async Task <IActionResult> Create(Fair fair) { if (ModelState.IsValid) { _Db.Add(fair); await _Db.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); ; } return(View()); }
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")); }
public ActionResult Pick(FairViewModel model) { if (Session[CURRENT_STEP] == null) { return(RedirectToAction(nameof(Pick))); } int currentStep = (int)Session[CURRENT_STEP]; Fair currentFair = Repository.GetCurrentFair(); model.Fair = currentFair; model.NumberOfPhases = NUMBER_OF_STEPS; if (string.IsNullOrEmpty(model.UserBarCode) && currentStep == 0) { ModelState.AddModelError(nameof(FairViewModel.UserBarCode), "Veuillez indiquez le code à barres du vendeur."); } if (ModelState.IsValid) { switch (currentStep) { case 0: ApplicationUser seller = Repository.GetUserBy(BarCode: model.UserBarCode.Trim().ToUpper()); if (seller == null) { return(RedirectToAction(nameof(Pick))); } Session[CURRENT_STEP] = 1; Session[SELLER] = seller.Id; model.CurrentStep = 1; model.User = seller; model.UserOffers = seller.Offers; model.FairOffers = currentFair.Offers; break; case 1: if (Session[SELLER] == null) { return(RedirectToAction(nameof(Pick))); } ApplicationUser seller1 = Repository.GetUserBy(Id: Session[SELLER] as string); Session[SELLER_PICKED_ARTICLES] = currentFair.Offers.Intersect(seller1.Offers) .Where(offer => offer.Article.FairState == ArticleFairState.PICKED) .ToList() .ConvertAll(new Converter <Offer, string>(offer => offer.Id.ToString())); Session[CURRENT_STEP] = 2; model.CurrentStep = 2; model.User = seller1; break; case 2: return(RedirectToAction(nameof(Pick))); } } return(View(model)); }