public ActionResult SaveItemSession(ItemUserViewModel model) { if (!ModelState.IsValid) { return(RedirectToAction("ItemSession", "UsersItems")); } ItemUser item = ItemUserModelMap.ViewModelToItemUser(model); List <ItemUser> sessionModel = Session["ItemsList"] as List <ItemUser>; if (sessionModel == null) { item.Id = 1; Session["ItemsList"] = new List <ItemUser>(); Session.Timeout = 30; } else if (item.Id != 0) { int index = sessionModel.FindIndex(i => i.Id == item.Id); sessionModel[index] = item; return(RedirectToAction("New", "Filters")); } else { item.Id = sessionModel.Count > 0 ? sessionModel.Max(i => i.Id) + 1 : 1; } List <ItemUser> viewModel = Session["ItemsList"] as List <ItemUser>; viewModel.Add(item); return(RedirectToAction("New", "Filters")); }
public ActionResult SaveItemDb(ItemUserViewModel model) { bool isAuthorized = User.Identity.GetUserId() == _context.Filters.SingleOrDefault(i => i.Id == model.FilterId).UserId; if (!isAuthorized) { return(HttpNotFound()); } if (!ModelState.IsValid) { return(RedirectToAction("MyFilters", "UsersItems")); } ItemUser item = ItemUserModelMap.ViewModelToItemUser(model); if (model.ItemId == null) { int lastRowId = _context.Filters .SelectMany(i => i.Items) .Where(i => i.FilterId == item.FilterId) .Max(i => i.RowId); item.RowId = lastRowId + 1; _context.UsersItems.Add(item); } else { ItemUser itemInDb = new ItemUser(); itemInDb = _context.UsersItems.SingleOrDefault(i => i.Id == item.Id); itemInDb.BaseType = item.BaseType; itemInDb.Attribute1 = item.Attribute1; itemInDb.Attribute2 = item.Attribute2; itemInDb.Class = item.Class; itemInDb.Corrupted = item.Corrupted; itemInDb.DropLevel = item.DropLevel; itemInDb.Height = item.Height; itemInDb.Identified = item.Identified; itemInDb.ItemLevel = item.ItemLevel; itemInDb.LinkedSockets = item.LinkedSockets; itemInDb.MainCategory = item.MainCategory; itemInDb.PlayAlertSound = item.PlayAlertSound; itemInDb.Quality = item.Quality; itemInDb.Rarity = item.Rarity; itemInDb.SetBackgroundColor = item.SetBackgroundColor; itemInDb.SetBorderColor = item.SetBorderColor; itemInDb.SetFontSize = item.SetFontSize; itemInDb.SetTextColor = item.SetTextColor; itemInDb.Show = item.Show; itemInDb.Sockets = item.Sockets; itemInDb.SocketsGroup = item.SocketsGroup; itemInDb.Width = item.Width; itemInDb.UserBaseType = item.UserBaseType; } _context.SaveChanges(); return(RedirectToAction("Edit", "Filters", new { id = item.FilterId })); }