public IActionResult Edit([FromRoute] int id, [Bind("ItemName,StoreName,SellerName,TopicName,ItemName,ItemDescription,ItemPrice")] ItemViewModel viewModel) { try { if (ModelState.IsValid) { Domain.Model.Item item = Repo.GetItemById(id); item.Name = viewModel.ItemName; item.Description = viewModel.ItemDescription; item.Price = viewModel.ItemPrice; item.StoreId = RepoStore.GetStoresByName(viewModel.StoreName).First(p => p.Name.ToLower() == viewModel.StoreName.ToLower()).Id; item.OrderId = viewModel.OrderId; item.SellerId = RepoSell.GetSellersByName(viewModel.SellerName).First(p => p.Name.ToLower() == viewModel.SellerName.ToLower()).Id; item.TopicId = RepoTopi.GetTopicByName(viewModel.TopicName).First(p => p.Topic.ToLower() == viewModel.TopicName.ToLower()).Id; Repo.UpdateItem(item); Repo.Save(); return(RedirectToAction(nameof(Index))); } return(View(viewModel)); } catch (Exception) { return(View(viewModel)); } }
public IActionResult Create([Bind("ItemName,StoreName,SellerName,TopicName,ItemName,ItemDescription,ItemPrice")] ItemViewModel viewModel) { try { if (ModelState.IsValid) { var myStore = RepoStore.GetStoresByName().First(p => p.Name.ToLower() == viewModel.StoreName.ToLower()).Id; var mySeller = RepoSell.GetSellersByName().First(p => p.Name.ToLower() == viewModel.SellerName.ToLower()).Id; var myTopic = RepoTopi.GetTopicByName().First(p => p.Topic.ToLower() == viewModel.TopicName.ToLower()).Id; var item = new Domain.Model.Item { Id = 0, Name = viewModel.ItemName, Description = viewModel.ItemDescription, Price = viewModel.ItemPrice, StoreId = myStore, OrderId = viewModel.OrderId, SellerId = mySeller, TopicId = myTopic }; Repo.AddItem(item); Repo.Save(); return(RedirectToAction(nameof(Index))); } return(View(viewModel)); } catch { return(View(viewModel)); } }
public void UpdateItem(Domain.Model.Item inputItem) { _logger.LogInformation($"Updating item with ID {inputItem.Id}"); Context.Item currentEntity = _dbContext.Items.Find(inputItem.Id); Context.Item newEntity = Mapper.UnMapItem(inputItem); _dbContext.Entry(currentEntity).CurrentValues.SetValues(newEntity); }
public void AddItem(Domain.Model.Item inputItem) { if (inputItem.Id != 0) { _logger.LogWarning($"Item to be added has an ID ({inputItem.Id}) already: ignoring."); } _logger.LogInformation("Adding item"); Context.Item entity = Mapper.UnMapItem(inputItem); entity.ItemId = 0; _dbContext.Add(entity); }
public static Context.Item UnMapItem(Domain.Model.Item item) { return(new Context.Item { ItemId = item.Id, StoreId = item.StoreId, OrderId = item.OrderId, SellerId = item.SellerId, TopicId = item.TopicId, ItemName = item.Name, ItemDescription = item.Description, ItemPrice = item.Price, }); }
// GET: Items/Delete/5 public IActionResult Delete(int id) { Domain.Model.Item item = Repo.GetItemById(id); var viewModel = new ItemViewModel { ItemId = item.Id, ItemName = item.Name, ItemDescription = item.Description, ItemPrice = item.Price, StoreName = RepoStore.GetStoreById(item.StoreId).Name, OrderId = item.OrderId, SellerName = RepoSell.GetSellerById(item.SellerId).Name, TopicName = RepoTopi.GetTopicById(item.TopicId).Topic }; return(View(viewModel)); }
// GET: Items/Edit/5 public IActionResult Edit(int id) { // we pass the current values into the Edit view // so that the input fields can be pre-populated instead of blank // (important for good UX) Domain.Model.Item item = Repo.GetItemById(id); var viewModel = new ItemViewModel { ItemId = item.Id, ItemName = item.Name, ItemDescription = item.Description, ItemPrice = item.Price, StoreName = RepoStore.GetStoreById(item.StoreId).Name, OrderId = item.OrderId, SellerName = RepoSell.GetSellerById(item.SellerId).Name, TopicName = RepoTopi.GetTopicById(item.TopicId).Topic }; List <string> mySellers = new List <string> (); foreach (var val in RepoSell.GetSellersByName().ToList()) { mySellers.Add(val.Name); } ViewData["Seller"] = new SelectList(mySellers); List <string> myTopics = new List <string> (); foreach (var val in RepoTopi.GetTopicByName().ToList()) { myTopics.Add(val.Topic); } ViewData["Topic"] = new SelectList(myTopics); List <string> myStores = new List <string> (); foreach (var val in RepoStore.GetStoresByName().ToList()) { myStores.Add(val.Name); } ViewData["Store"] = new SelectList(myStores); return(View(viewModel)); }