コード例 #1
0
        public IActionResult Create(Item item)
        {
            //Couldn't find a better way to do this, because when I click submit, it doesn't give me the item I want to get.
            if (ModelState.IsValid)
            {
                item.ItemType    = Request.Form["TypeRadio"];
                item.Title       = Request.Form["Name"];
                item.Description = Request.Form["Description"];
                item.Price       = Convert.ToDecimal(Request.Form["Price"]);
                item.Year        = Convert.ToInt32(Request.Form["Year"]);
                item.Country     = Request.Form["Country"];
                item.Retailer    = Request.Form["Retailer"];
                item.Exclusive   = Request.Form["Exclusive"];
                item.Limited     = Convert.ToInt32(Request.Form["Limited"]);
                item.ListID      = Convert.ToInt32(Request.Form["List"]);

                if (item.ItemType == "Other")
                {
                    item.ItemType = Request.Form["Type"];
                }

                foreach (string s in collectionRepository.SeperateString(Request.Form["Tags"]))
                {
                    item.tags.Add(new Tag()
                    {
                        Name = s, Type = "Tag"
                    });
                }
                foreach (string s in collectionRepository.SeperateString(Request.Form["Genres"]))
                {
                    item.tags.Add(new Tag()
                    {
                        Name = s, Type = "Genre"
                    });
                }
                foreach (string s in collectionRepository.SeperateString(Request.Form["Finishes"]))
                {
                    item.tags.Add(new Tag()
                    {
                        Name = s, Type = "Finish"
                    });
                }
                int counter = 0;
                foreach (string s in collectionRepository.SeperateString(Request.Form["Images"]))
                {
                    string substring = "";
                    int    lastIndex = s.LastIndexOf(".");
                    if (lastIndex > 0)
                    {
                        substring = s.Substring(lastIndex).ToLower();
                    }
                    if (substring == ".png" || substring == ".gif" || substring == ".jpg" || substring == ".jpeg")
                    {
                        counter++;
                        item.images.Add(new Image()
                        {
                            ItemPicture = s, Position = counter
                        });
                    }
                }
                userID = Convert.ToInt32(HttpContext.Session.GetInt32("UserID"));
                try
                {
                    switch (item.ItemType)
                    {
                    case "Book":
                        item.ItemBook          = new Book();
                        item.ItemBook.Format   = Request.Form["Format"];
                        item.ItemBook.Language = Request.Form["Language"];
                        item.ItemBook.Pages    = Convert.ToInt32(Request.Form["Pages"]);
                        collectionRepository.SaveItem(item, item.ItemBook);
                        break;

                    case "Case":
                        item.ItemCase          = new Case();
                        item.ItemCase.CaseType = Request.Form["CaseType"];
                        item.ItemCase.Cover    = Request.Form["Cover"];
                        if (Convert.ToInt32(Request.Form["4K Blu-Ray"]) != 0)
                        {
                            item.ItemCase.Discs.Add(new Disc()
                            {
                                Amount = Convert.ToInt32(Request.Form["4K Blu-Ray"]), Format = "4K Blu-Ray"
                            });
                        }
                        if (Convert.ToInt32(Request.Form["3D Blu-Ray"]) != 0)
                        {
                            item.ItemCase.Discs.Add(new Disc()
                            {
                                Amount = Convert.ToInt32(Request.Form["3D Blu-Ray"]), Format = "3D Blu-Ray"
                            });
                        }
                        if (Convert.ToInt32(Request.Form["Blu-Ray"]) != 0)
                        {
                            item.ItemCase.Discs.Add(new Disc()
                            {
                                Amount = Convert.ToInt32(Request.Form["Blu-Ray"]), Format = "Blu-Ray"
                            });
                        }
                        if (Convert.ToInt32(Request.Form["DVD"]) != 0)
                        {
                            item.ItemCase.Discs.Add(new Disc()
                            {
                                Amount = Convert.ToInt32(Request.Form["DVD"]), Format = "DVD"
                            });
                        }
                        if (Convert.ToInt32(Request.Form["CD"]) != 0)
                        {
                            item.ItemCase.Discs.Add(new Disc()
                            {
                                Amount = Convert.ToInt32(Request.Form["CD"]), Format = "CD"
                            });
                        }
                        collectionRepository.SaveItem(item, item.ItemCase);
                        break;

                    case "Media":
                        item.ItemMedia           = new Media();
                        item.ItemMedia.MediaType = Request.Form["MediaType"];
                        item.ItemMedia.Runtime   = Convert.ToInt32(Request.Form["Runtime"]);
                        item.ItemMedia.Platform  = Request.Form["Platform"];
                        if (Convert.ToInt32(Request.Form["4K Blu-Ray"]) != 0)
                        {
                            item.ItemMedia.Discs.Add(new Disc()
                            {
                                Amount = Convert.ToInt32(Request.Form["4K Blu-Ray"]), Format = "4K Blu-Ray"
                            });
                        }
                        if (Convert.ToInt32(Request.Form["3D Blu-Ray"]) != 0)
                        {
                            item.ItemMedia.Discs.Add(new Disc()
                            {
                                Amount = Convert.ToInt32(Request.Form["3D Blu-Ray"]), Format = "3D Blu-Ray"
                            });
                        }
                        if (Convert.ToInt32(Request.Form["Blu-Ray"]) != 0)
                        {
                            item.ItemMedia.Discs.Add(new Disc()
                            {
                                Amount = Convert.ToInt32(Request.Form["Blu-Ray"]), Format = "Blu-Ray"
                            });
                        }
                        if (Convert.ToInt32(Request.Form["DVD"]) != 0)
                        {
                            item.ItemMedia.Discs.Add(new Disc()
                            {
                                Amount = Convert.ToInt32(Request.Form["DVD"]), Format = "DVD"
                            });
                        }
                        if (Convert.ToInt32(Request.Form["CD"]) != 0)
                        {
                            item.ItemMedia.Discs.Add(new Disc()
                            {
                                Amount = Convert.ToInt32(Request.Form["CD"]), Format = "CD"
                            });
                        }
                        foreach (string key in Request.Form.Keys.Where(k => k.StartsWith("Discs_")))
                        {
                            item.ItemMedia.Discs.Add(new Disc {
                                RelationID = Convert.ToInt32(Request.Form[key])
                            });
                        }
                        collectionRepository.SaveItem(item, item.ItemMedia);
                        break;

                    default:
                        collectionRepository.SaveItem(item);
                        break;
                    }
                    return(RedirectToAction("Details", new { id = item.ID }));
                }
                catch (Exception e)
                {
                    string message = e.Message;
                    return(View("Error", "Database"));
                }
            }
            return(View(item));
        }