コード例 #1
0
        public static List <Item_Tag> GetListOfItemTags()
        {
            List <Item_Tag> ITRecords = new List <Item_Tag>();

            Item_Tag Whisper_Weapon = GetSampleItemTag();

            ITRecords.Add(Whisper_Weapon);

            Item_Tag Whisper_Wondorous = new Item_Tag
            {
                Item_id = Guid.Parse("709135c3-6f89-46cb-80ae-4097b621e3b0"),
                Tag_id  = Guid.Parse("e2c7f8a3-52ba-4dc2-baaf-4026718b1f03")
            };

            ITRecords.Add(Whisper_Wondorous);

            Item_Tag Knuckles_Wondorous = new Item_Tag
            {
                Item_id = Guid.Parse("026a7dff-5e85-4e6d-94c6-6613828e5df6"),
                Tag_id  = Guid.Parse("e2c7f8a3-52ba-4dc2-baaf-4026718b1f03")
            };

            ITRecords.Add(Knuckles_Wondorous);

            Item_Tag Knuckles_HeavyArmor = new Item_Tag
            {
                Item_id = Guid.Parse("026a7dff-5e85-4e6d-94c6-6613828e5df6"),
                Tag_id  = Guid.Parse("35d27332-ccc3-40b2-b2d1-a91715ad0917")
            };

            ITRecords.Add(Knuckles_HeavyArmor);

            return(ITRecords);
        }
コード例 #2
0
        public void SetTagForItem(Guid item_id, Guid Tag_id)
        {
            Item_Tag newRecord = new Item_Tag
            {
                Item_id = item_id,
                Tag_id  = Tag_id
            };

            itemsContext.Item_Tags.Add(newRecord);
        }
コード例 #3
0
        public static Item_Tag GetSampleItemTag()
        {
            Item_Tag Whisper_Weapon = new Item_Tag
            {
                Item_id = Guid.Parse("709135c3-6f89-46cb-80ae-4097b621e3b0"),
                Tag_id  = Guid.Parse("172e8478-e1bd-49ba-a7a7-6455d5a58c6e")
            };

            return(Whisper_Weapon);
        }
コード例 #4
0
        public void SetAllTagsForItem(Guid Item_id, IEnumerable <Guid> tag_ids)
        {
            List <Item_Tag> itemTags = new List <Item_Tag>();

            foreach (Guid tag_id in tag_ids)
            {
                Item_Tag record = new Item_Tag
                {
                    Item_id = Item_id,
                    Tag_id  = tag_id
                };
                itemTags.Add(record);
            }
            itemsContext.Item_Tags.AddRange(itemTags);
        }
コード例 #5
0
        public ActionResult AddItem(ItemViewModel model)
        {
            if (ModelState.IsValid)
            {
                var item = new Item
                {
                    Name        = model.Name,
                    Price       = model.Price,
                    Store       = model.Store,
                    Quantity    = model.Quantity,
                    Measurement = model.Measurement,
                    PersonId    = currentPersonId,
                };
                db.Items.Add(item);

                if (model.TagIds != null)
                {
                    foreach (int t in model.TagIds)
                    {
                        var itemTag = new Item_Tag
                        {
                            ItemId = item.Id,
                            TagId  = t,
                        };
                        db.ItemTags.Add(itemTag);
                    }
                }

                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            else
            {
                model.TagCollection = from t in db.Tags where t.PersonId == currentPersonId select t;
                return(PartialView(model));
            }
        }
コード例 #6
0
        public ActionResult EditItem(int id, ItemViewModel model)
        {
            var item = db.Items.Where(i => i.Id == id).FirstOrDefault();

            item.Name        = model.Name;
            item.Price       = model.Price;
            item.Store       = model.Store;
            item.Quantity    = model.Quantity;
            item.Measurement = model.Measurement;

            //check for existing Item_Tags for this item to ensure no duplicates are bing added
            List <int> thisItemExistingTagIds = (from i in db.Items
                                                 join existingItemTag in db.ItemTags on i.Id equals existingItemTag.ItemId
                                                 join tag in db.Tags on existingItemTag.TagId equals tag.Id
                                                 where i.Id == item.Id
                                                 select tag.Id).ToList();

            if (model.TagIds != null)
            {
                foreach (int t in model.TagIds)
                {
                    if (!thisItemExistingTagIds.Contains(t))
                    {
                        var itemTag = new Item_Tag
                        {
                            ItemId = item.Id,
                            TagId  = t,
                        };
                        db.ItemTags.Add(itemTag);
                    }
                }

                //remove tags from item if they have been untagged
                foreach (int tagIdToRemove in thisItemExistingTagIds)
                {
                    if (!model.TagIds.Contains(tagIdToRemove))
                    {
                        var tagToRemove = (from t in db.ItemTags where t.TagId == tagIdToRemove && t.ItemId == model.Id select t).First();
                        db.ItemTags.Remove(tagToRemove);
                    }
                }
            }
            //remove all existing tags if none are selected
            else if (model.TagIds == null && thisItemExistingTagIds != null)
            {
                foreach (int tagIdToRemove in thisItemExistingTagIds)
                {
                    var tagToRemove = (from t in db.ItemTags where t.TagId == tagIdToRemove && t.ItemId == model.Id select t).First();
                    db.ItemTags.Remove(tagToRemove);
                }
            }

            if (ModelState.IsValid)
            {
                db.SaveChanges();
                TempData["Success"] = "Changes Saved!";
                return(RedirectToAction("Index"));
            }
            else
            {
                model.TagCollection = from t in db.Tags where t.PersonId == currentPersonId select t;
                return(PartialView(model));
            }
        }