コード例 #1
0
        public ActionResult DeleteConfirmed(int id)
        {
            FoodGroups foodGroups = db.FoodGroups.Find(id);

            db.FoodGroups.Remove(foodGroups);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #2
0
 /// <summary>
 /// Removes all inactive food groups.
 /// </summary>
 public virtual void RemoveInactiveFoodGroups()
 {
     _foodGroups = FoodGroups.Where(foodGroup => foodGroup == PrimaryFoodGroup || foodGroup.IsActive).ToList();
     foreach (var foodGroup in _foodGroups)
     {
         foodGroup.RemoveInactiveChildren();
     }
 }
コード例 #3
0
 public ActionResult Edit([Bind(Include = "id,desc")] FoodGroups foodGroups)
 {
     if (ModelState.IsValid)
     {
         db.Entry(foodGroups).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(foodGroups));
 }
コード例 #4
0
        /// <summary>Registers the item into it's registry</summary>
        public override IdentifiableItem Register()
        {
            Identifiable.LARGO_CLASS.Add(ID);

            base.Register();

            if (Definition.Diet == null)
            {
                Definition.Diet = new SlimeDiet();
            }

            if (SuperFoods != null)
            {
                FavoriteFoods.AddRange(SuperFoods);
            }

            SlimeDiet diet = Definition.Diet;

            // TODO: Add the new diets
            if (FoodGroups.Contains(SlimeEat.FoodGroup.FRUIT))
            {
                SlimeUtils.PopulateDiet(ID, Identifiable.FRUIT_CLASS, diet, FavoriteFoods, Plort);
                SlimeUtils.PopulateDiet(ID, Identifiable.FRUIT_CLASS, diet, FavoriteFoods, Plort2);
            }

            if (FoodGroups.Contains(SlimeEat.FoodGroup.VEGGIES))
            {
                SlimeUtils.PopulateDiet(ID, Identifiable.VEGGIE_CLASS, diet, FavoriteFoods, Plort);
                SlimeUtils.PopulateDiet(ID, Identifiable.VEGGIE_CLASS, diet, FavoriteFoods, Plort2);
            }

            if (FoodGroups.Contains(SlimeEat.FoodGroup.MEAT))
            {
                SlimeUtils.PopulateDiet(ID, Identifiable.MEAT_CLASS, diet, FavoriteFoods, Plort);
                SlimeUtils.PopulateDiet(ID, Identifiable.MEAT_CLASS, diet, FavoriteFoods, Plort2);
            }

            if (FoodGroups.Contains(SlimeEat.FoodGroup.GINGER))
            {
                SlimeUtils.PopulateDiet(ID, new[] { Identifiable.Id.GINGER_VEGGIE }, diet, FavoriteFoods, Plort);
                SlimeUtils.PopulateDiet(ID, new[] { Identifiable.Id.GINGER_VEGGIE }, diet, FavoriteFoods, Plort2);
            }

            if (FoodGroups.Contains(SlimeEat.FoodGroup.NONTARRGOLD_SLIMES))
            {
                SlimeUtils.PopulateDiet(ID, Identifiable.TOFU_CLASS, diet, FavoriteFoods, Plort);
                SlimeUtils.PopulateDiet(ID, Identifiable.TOFU_CLASS, diet, FavoriteFoods, Plort2);
            }

            // Populates the synergy part
            SlimeUtils.PopulateDiet(ID, SuperFoods, diet, SuperFoods, SynergyPlort);

            return(this);
        }
コード例 #5
0
        public ActionResult Create([Bind(Include = "id,desc")] FoodGroups foodGroups)
        {
            if (ModelState.IsValid)
            {
                db.FoodGroups.Add(foodGroups);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(foodGroups));
        }
コード例 #6
0
        /// <summary>Registers the item into it's registry</summary>
        public override IdentifiableItem Register()
        {
            base.Register();

            if (Definition.Diet == null)
            {
                Definition.Diet = new SlimeDiet();
            }

            Definition.Diet.EatMap = new List <SlimeDiet.EatMapEntry>();
            SlimeDiet diet = Definition.Diet;

            if (CustomDietBehaviour || FoodGroups.Count <= 0)
            {
                return(this);
            }

            // TODO: Add the new diets
            if (FoodGroups.Contains(SlimeEat.FoodGroup.FRUIT))
            {
                SlimeUtils.PopulateDiet(ID, Identifiable.FRUIT_CLASS, diet, FavoriteFoods, Plort);
            }

            if (FoodGroups.Contains(SlimeEat.FoodGroup.VEGGIES))
            {
                SlimeUtils.PopulateDiet(ID, Identifiable.VEGGIE_CLASS, diet, FavoriteFoods, Plort);
            }

            if (FoodGroups.Contains(SlimeEat.FoodGroup.MEAT))
            {
                SlimeUtils.PopulateDiet(ID, Identifiable.MEAT_CLASS, diet, FavoriteFoods, Plort);
            }

            if (FoodGroups.Contains(SlimeEat.FoodGroup.GINGER))
            {
                SlimeUtils.PopulateDiet(ID, new[]
                {
                    Identifiable.Id.GINGER_VEGGIE
                }, diet, FavoriteFoods, Plort);
            }

            if (FoodGroups.Contains(SlimeEat.FoodGroup.PLORTS))
            {
                SlimeUtils.PopulateDiet(ID, Identifiable.PLORT_CLASS, diet, FavoriteFoods, Plort, true);
                Definition.CanLargofy = false;
            }

            if (FoodGroups.Contains(SlimeEat.FoodGroup.NONTARRGOLD_SLIMES))
            {
                SlimeUtils.PopulateDiet(ID, Identifiable.TOFU_CLASS, diet, FavoriteFoods, Plort);
            }

            return(this);
        }
コード例 #7
0
        // GET: FoodGroups/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            FoodGroups foodGroups = db.FoodGroups.Find(id);

            if (foodGroups == null)
            {
                return(HttpNotFound());
            }
            return(View(foodGroups));
        }
コード例 #8
0
        /// <summary>
        /// Save relations.
        /// </summary>
        /// <param name="dataProvider">Implementation of the data provider used to access data.</param>
        /// <param name="isInserting">Indication of whether we are inserting or updating.</param>
        public virtual void SaveRelations(IDataProviderBase <MySqlDataReader, MySqlCommand> dataProvider, bool isInserting)
        {
            ArgumentNullGuard.NotNull(dataProvider, nameof(dataProvider));

            if (Identifier.HasValue == false)
            {
                throw new IntranetRepositoryException(Resource.GetExceptionMessage(ExceptionMessage.IllegalValue, Identifier, "Identifier"));
            }

            if (PrimaryFoodGroup != null && PrimaryFoodGroup.Identifier.HasValue == false)
            {
                throw new IntranetRepositoryException(Resource.GetExceptionMessage(ExceptionMessage.IllegalValue, PrimaryFoodGroup.Identifier, "PrimaryFoodGroup.Identifier"));
            }

            IFoodGroup foodGroupWithoutIdentifier = FoodGroups.FirstOrDefault(foodGroup => foodGroup.Identifier.HasValue == false);

            if (foodGroupWithoutIdentifier != null)
            {
                throw new IntranetRepositoryException(Resource.GetExceptionMessage(ExceptionMessage.IllegalValue, foodGroupWithoutIdentifier.Identifier, "FoodGroups[].Identifier"));
            }

            IList <FoodItemGroupProxy> foodItemGroups = FoodItemGroupProxy.GetFoodItemGroups(dataProvider, Identifier.Value).ToList();

            if (PrimaryFoodGroup?.Identifier != null && foodItemGroups.SingleOrDefault(foodItemGroup => foodItemGroup.FoodGroupIdentifier.HasValue && foodItemGroup.FoodGroupIdentifier.Value == PrimaryFoodGroup.Identifier.Value) == null)
            {
                using (IFoodWasteDataProvider subDataProvider = (IFoodWasteDataProvider)dataProvider.Clone())
                {
                    foodItemGroups.Add(subDataProvider.Add(FoodItemGroupProxy.Build(this, PrimaryFoodGroup, true)));
                }
            }

            IFoodGroup missingFoodGroup = FoodGroups.FirstOrDefault(foodGroup => foodGroup.Identifier.HasValue && foodItemGroups.Any(foodItemGroup => foodItemGroup.FoodGroupIdentifier.HasValue && foodItemGroup.FoodGroupIdentifier.Value == foodGroup.Identifier.Value) == false);

            while (missingFoodGroup != null)
            {
                using (IFoodWasteDataProvider subDataProvider = (IFoodWasteDataProvider)dataProvider.Clone())
                {
                    foodItemGroups.Add(subDataProvider.Add(FoodItemGroupProxy.Build(this, missingFoodGroup, false)));
                }
                missingFoodGroup = FoodGroups.FirstOrDefault(foodGroup => foodGroup.Identifier.HasValue && foodItemGroups.Any(foodItemGroup => foodItemGroup.FoodGroupIdentifier.HasValue && foodItemGroup.FoodGroupIdentifier.Value == foodGroup.Identifier.Value) == false);
            }

            FoodItemGroupProxy noLongerExistingFoodItemGroup = foodItemGroups.FirstOrDefault(foodItemGroup => foodItemGroup.FoodGroupIdentifier.HasValue && FoodGroups.Any(foodGroup => foodGroup.Identifier.HasValue && foodGroup.Identifier.Value == foodItemGroup.FoodGroupIdentifier.Value) == false);

            while (noLongerExistingFoodItemGroup != null)
            {
                using (IFoodWasteDataProvider subDataProvider = (IFoodWasteDataProvider)dataProvider.Clone())
                {
                    subDataProvider.Delete(noLongerExistingFoodItemGroup);
                    foodItemGroups.Remove(noLongerExistingFoodItemGroup);
                }
                noLongerExistingFoodItemGroup = foodItemGroups.FirstOrDefault(foodItemGroup => foodItemGroup.FoodGroupIdentifier.HasValue && FoodGroups.Any(foodGroup => foodGroup.Identifier.HasValue && foodGroup.Identifier.Value == foodItemGroup.FoodGroupIdentifier.Value) == false);
            }

            if (PrimaryFoodGroup == null || PrimaryFoodGroup.Identifier.HasValue == false)
            {
                _dataProvider = (IFoodWasteDataProvider)dataProvider;
                return;
            }

            FoodItemGroupProxy primaryFoodItemGroup = foodItemGroups.SingleOrDefault(foodItemGroup => foodItemGroup.FoodGroupIdentifier.HasValue && foodItemGroup.FoodGroupIdentifier.Value == PrimaryFoodGroup.Identifier.Value);

            if (primaryFoodItemGroup != null && primaryFoodItemGroup.IsPrimary == false)
            {
                primaryFoodItemGroup.IsPrimary = true;
                using (IFoodWasteDataProvider subDataProvider = (IFoodWasteDataProvider)dataProvider.Clone())
                {
                    foodItemGroups.Remove(primaryFoodItemGroup);
                    foodItemGroups.Add(subDataProvider.Save(primaryFoodItemGroup));
                }
            }

            FoodItemGroupProxy nonPrimaryFoodItemGroup = foodItemGroups.Where(foodItemGroup => foodItemGroup.FoodGroupIdentifier.HasValue && foodItemGroup.FoodGroupIdentifier.Value != PrimaryFoodGroup.Identifier.Value).SingleOrDefault(foodItemGroup => foodItemGroup.IsPrimary);

            while (nonPrimaryFoodItemGroup != null)
            {
                nonPrimaryFoodItemGroup.IsPrimary = false;
                using (IFoodWasteDataProvider subDataProvider = (IFoodWasteDataProvider)dataProvider.Clone())
                {
                    foodItemGroups.Remove(nonPrimaryFoodItemGroup);
                    foodItemGroups.Add(subDataProvider.Save(nonPrimaryFoodItemGroup));
                }
                nonPrimaryFoodItemGroup = foodItemGroups.Where(foodItemGroup => foodItemGroup.FoodGroupIdentifier.HasValue && foodItemGroup.FoodGroupIdentifier.Value != PrimaryFoodGroup.Identifier.Value).SingleOrDefault(foodItemGroup => foodItemGroup.IsPrimary);
            }

            _dataProvider = (IFoodWasteDataProvider)dataProvider;
        }