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