// GET: List/Item/Delete/5 public ActionResult DeleteItem(int id, int listId) //id = productId { //try //{ //1. If UserProduct -> Delete ProductService productService = new ProductService(); var prodType = productService.GetProductTypeId(id); if (prodType == 4) //one-time UserProduct { var userProdId = productService.GetUserProductId(id); productService.DeleteUserProduct(userProdId); } //2. Update Sorting without this item LanguageService languageService = new LanguageService(); var listEntries = productService.GetEntriesAsProducts(listId, languageService.GetByCode(Session["LanguageCode"].ToString()).Id); UserListSortingService listSortingService = new UserListSortingService(); ShoppingListService listService = new ShoppingListService(); var sortingId = listService.Get(listId, int.Parse(Session["UserId"].ToString())).ChosenSortingId; UserListSortingDto sorting = new UserListSortingDto(); if (sortingId != null) { sorting.Id = (int)sortingId; } sorting.ShoppingList_Id = listId; ShoppingListEntryService shoppingListEntryService = new ShoppingListEntryService(); var entryId = shoppingListEntryService.GetEntryId(id, listId); listSortingService.SaveSorting(sorting, listEntries, entryId); //3. Delete ShoppingListEntry (if default or reusable only this) shoppingListEntryService.Delete(entryId); TempData["SuccessMessage"] = "Successfully deleted the entry."; return(RedirectToAction("SingleList", new { @id = listId })); //} //catch //{ // TempData["ErrorMessage"] = "There was an error while trying to delete this entry."; // return Redirect(Request.UrlReferrer.ToString()); //} }
public ActionResult EditItem(FormCollection collection) { try { var name = collection["Name"]; var reusable = collection["UserProduct"]; var price = decimal.Parse(collection["Price"]); var listId = int.Parse(collection["ListId"]); var qty = uint.Parse(collection["Quantity"]); var unitTypeId = int.Parse(collection["UnitTypesListId"]); int catId = 0; int userCatId = 0; if (collection["CategoryListId"] != "") { catId = int.Parse(collection["CategoryListId"]); } var userCat = collection["UserCategory"]; var currencyId = int.Parse(collection["CurrencyListId"]); var prodTypeId = int.Parse(collection["ProductTypeId"]); var prodId = int.Parse(collection["ProductId"]); /* UPDATING ShoppingListEntry */ ShoppingListEntryService entryService = new ShoppingListEntryService(); ShoppingListEntryDto entry = new ShoppingListEntryDto { Id = entryService.GetEntryId(prodId, listId), Quantity = (int)qty, ProductTypeId = prodTypeId, ShoppingList_Id = listId, Product_Id = prodId, State_Id = 2 //Default is unchecked }; entryService.Update(entry); //updates ShoppingListEntry /* CREATE NEW UserCatgory */ if (userCat != "") { LanguageService languageService = new LanguageService(); CategoryDto category = new CategoryDto { Name = userCat, LanguageId = languageService.GetByCode(Session["LanguageCode"].ToString()).Id, UserId = int.Parse(Session["UserId"].ToString()) }; CategoryService categoryService = new CategoryService(); userCatId = categoryService.Create(category); } ProductService productService = new ProductService(); if (prodTypeId == 4 || prodTypeId == 3) { if (reusable == "false") { prodTypeId = 4; //4 = UserListProduct = non reusable } else { prodTypeId = 3; } /* UPDATING UserProduct */ UserProductDto userProduct = new UserProductDto { Id = productService.GetUserProductId(prodId), ProductId = prodId, Name = name }; if (userCat != "") { userProduct.Category_Id = userCatId; } else { userProduct.Category_Id = catId; } userProduct.User_Id = int.Parse(Session["UserId"].ToString()); userProduct.Unit_Id = unitTypeId; userProduct.Price = price; userProduct.Currency_Id = currencyId; productService.Update(userProduct); } else if (prodTypeId == 1) //if default Product { if (catId != 0) { //create LinkDefaultProductToCategory entry } else if (userCatId != 0) { //create LinkDefaultProductToCategory entry } } /* UPDATING Product -> for new Timestamp*/ ProductDto productDto = new ProductDto { Id = prodId, ProductTypeId = prodTypeId }; productService.Update(productDto); /* UPDATING ShoppingList -> for new Timestamp: */ ShoppingListDto shoppingList = new ShoppingListDto { Id = listId }; ShoppingListService listService = new ShoppingListService(); listService.Update(shoppingList); TempData["SuccessMessage"] = "Successfully edited this item"; return(RedirectToAction("SingleList", new { @id = listId })); } catch { TempData["ErrorMessage"] = "There was an error while editing the item"; return(Redirect(Request.UrlReferrer.ToString())); } }