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 ItemDb(int?filterId, int?itemId) { bool isAuthorized = false; if (filterId != null) { isAuthorized = User.Identity.GetUserId() == _context.Filters.SingleOrDefault(i => i.Id == filterId).UserId; if (!isAuthorized) { return(HttpNotFound()); } return(View("ItemDb", new ItemUserViewModel() { FilterId = filterId })); } if (itemId != null) { var itemInDb = _context.UsersItems.SingleOrDefault(i => i.Id == itemId); if (itemInDb == null) { return(HttpNotFound()); } isAuthorized = User.Identity.GetUserId() == _context.Filters.SingleOrDefault(i => i.Id == itemInDb.FilterId).UserId; if (!isAuthorized) { return(HttpNotFound()); } ItemUserViewModel viewModel = ItemUserModelMap.ItemUserToViewModel(itemInDb); return(View("ItemDb", viewModel)); } return(View("MyFilters", "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 })); }
public IActionResult Post([FromBody] ItemUserViewModel itemUser) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } itemUser.UserId = userManager.GetUserId(User); db.ItemUsers.Add(itemUser); db.SaveChanges(); return(Ok()); }
public static ItemUserViewModel ItemUserToViewModel(ItemUser model) { ApplicationDbContext _context = new ApplicationDbContext(); ItemUserViewModel viewModel = new ItemUserViewModel(); viewModel.FilterId = model.FilterId; viewModel.ItemId = model.Id; viewModel.BaseTypes = model.MainCategory != null? _context.BaseTypes.SingleOrDefault(i => i.Name == model.MainCategory).Id: (byte?)null; if (viewModel.BaseTypes != null) { var typesInDb = _context.Types.Where(i => i.BaseTypeId == viewModel.BaseTypes).Select(i => i).ToList(); List <string> types = new List <string>(); if (model.Class.Contains("\"")) { types = model.Class.Split('\"').ToList(); } else { types = model.Class.Split(' ').ToList(); } List <string> checkList = new List <string>(); types.RemoveAll(c => c == "" || c == " "); foreach (var itemType in types) { if (itemType.StartsWith(" ") || itemType.EndsWith(" ")) { checkList.AddRange(itemType.Split(' ')); } else { checkList.Add(itemType); } } checkList.RemoveAll(c => c == "" || c == " "); int matchCount = 0; foreach (var itemType in checkList) { bool isMultipleClass = typesInDb.Any(i => i.Name == itemType); matchCount = isMultipleClass ? matchCount + 1 : matchCount; } if (matchCount == typesInDb.Count) { viewModel.Types = null; } else if (matchCount < typesInDb.Count) { model.Class = model.Class.Replace("\"", ""); viewModel.Types = model.Class != null? _context.Types.SingleOrDefault(i => i.Name == model.Class).Id: (int?)null; } else { viewModel.Types = null; } } else { if (model.Class != null) { model.Class = model.Class.Replace("\"", ""); viewModel.Types = _context.Types.SingleOrDefault(i => i.Name == model.Class).Id; } } if (model.BaseType != null) { model.BaseType = model.BaseType.Replace("\"", ""); viewModel.Items = _context.ItemsDB.SingleOrDefault(i => i.Name == model.BaseType).Id; } viewModel.UserItem = model.UserBaseType != null && model.BaseType == null ? model.UserBaseType : null; if (model.ItemLevel != null) { int indexOfSpace = model.ItemLevel.IndexOf(" "); if (model.ItemLevel.Contains("\n")) { int indexOfLastSpace = model.ItemLevel.LastIndexOf(" "); viewModel.ItemLvlRangeSelect1 = model.ItemLevel.Substring(indexOfSpace + 1, 2).Replace("\\", ""); viewModel.ItemLvlRangeSelect2 = model.ItemLevel.Substring(indexOfLastSpace + 1); } viewModel.ItemLvlSelectSign = InequalitySign.SelectInt(model.ItemLevel.Substring(0, indexOfSpace)); viewModel.ItemLvlSelect = model.ItemLevel.Substring(indexOfSpace + 1); } if (model.DropLevel != null) { int indexOfSpace = model.DropLevel.IndexOf(" "); viewModel.DropLevelSelectSign = InequalitySign.SelectInt(model.DropLevel.Substring(0, indexOfSpace)); viewModel.DropLevelSelect = model.DropLevel.Substring(indexOfSpace + 1); } if (model.Quality != null) { int indexOfSpace = model.Quality.IndexOf(" "); viewModel.ItemQualitySelectSign = InequalitySign.SelectInt(model.Quality.Substring(0, indexOfSpace)); viewModel.ItemQualitySelect = model.Quality.Substring(indexOfSpace + 1); } if (model.Rarity != null) { int indexOfSpace = model.Rarity.IndexOf(" "); viewModel.ItemRaritySelectSign = InequalitySign.SelectInt(model.Rarity.Substring(0, indexOfSpace)); viewModel.ItemRaritySelect = (int)Enum.Parse(typeof(Rarity), model.Rarity.Substring(indexOfSpace + 1)); } if (model.Sockets != null) { int indexOfSpace = model.Sockets.IndexOf(" "); viewModel.SocketsNumberSelectSign = InequalitySign.SelectInt(model.Sockets.Substring(0, indexOfSpace)); viewModel.SocketsNumberSelect = model.Sockets.Substring(indexOfSpace + 1); } if (model.LinkedSockets != null) { int indexOfSpace = model.LinkedSockets.IndexOf(" "); viewModel.LinkedSocketsNumberSelectSign = InequalitySign.SelectInt(model.LinkedSockets.Substring(0, indexOfSpace)); viewModel.LinkedSocketsNumberSelect = model.LinkedSockets.Substring(indexOfSpace + 1); } if (model.SocketsGroup != null) { viewModel.RedSocketsSelect = model.SocketsGroup.Count(c => c == 'R'); viewModel.GreenSocketsSelect = model.SocketsGroup.Count(c => c == 'G'); viewModel.BlueSocketsSelect = model.SocketsGroup.Count(c => c == 'B'); viewModel.WhiteSocketsSelect = model.SocketsGroup.Count(c => c == 'W'); } if (model.Height != null) { int indexOfSpace = model.Height.IndexOf(" "); viewModel.HeightSelectSign = InequalitySign.SelectInt(model.Height.Substring(0, indexOfSpace)); viewModel.HeightSelect = model.Height.Substring(indexOfSpace + 1); } if (model.Width != null) { int indexOfSpace = model.Width.IndexOf(" "); viewModel.WidthSelectSign = InequalitySign.SelectInt(model.Width.Substring(0, indexOfSpace)); viewModel.WidthSelect = model.Width.Substring(indexOfSpace + 1); } if (model.SetBorderColor != null) { viewModel.BorderColor = model.SetBorderColor.Substring(0, model.SetBorderColor.LastIndexOf(' ')); viewModel.BorderAlphaSelect = model.SetBorderColor.Substring(model.SetBorderColor.LastIndexOf(' ') + 1); } if (model.SetTextColor != null) { viewModel.TextColor = model.SetTextColor.Substring(0, model.SetTextColor.LastIndexOf(' ')); viewModel.TextAlphaSelect = model.SetTextColor.Substring(model.SetTextColor.LastIndexOf(' ') + 1); } if (model.SetBackgroundColor != null) { viewModel.BackgroundColor = model.SetBackgroundColor.Substring(0, model.SetBackgroundColor.LastIndexOf(' ')); viewModel.BackAlphaSelect = model.SetBackgroundColor.Substring(model.SetBackgroundColor.LastIndexOf(' ') + 1); } if (model.PlayAlertSound != null) { int indexOfSpace = model.PlayAlertSound.IndexOf(" "); viewModel.PlayAlertSoundTypeSelect = model.PlayAlertSound.Substring(0, indexOfSpace); viewModel.PlayAlertSoundVolumeSelect = model.PlayAlertSound.Substring(indexOfSpace + 1); } viewModel.FontSizeSelect = model.SetFontSize; viewModel.IdentifiedSelect = Convert.ToInt32(model.Identified); viewModel.CorruptedSelect = Convert.ToInt32(model.Corrupted); viewModel.Show = Convert.ToInt32(model.Show); return(viewModel); }
public static ItemUser ViewModelToItemUser(ItemUserViewModel viewModel) { ApplicationDbContext _context = new ApplicationDbContext(); ItemUser model = new ItemUser(); model.Id = viewModel.ItemId != null ? viewModel.ItemId.Value : 0; model.FilterId = viewModel.FilterId != null ? viewModel.FilterId.Value : 0; if (viewModel.Items != null) { string baseType = _context.ItemsDB.SingleOrDefault(i => i.Id == viewModel.Items).Name; model.BaseType = baseType.Contains(" ") ? "\"" + baseType + "\"" : baseType; } else { model.BaseType = null; } model.UserBaseType = viewModel.UserItem != null && model.BaseType == null? viewModel.UserItem.Contains(" ") ? "\"" + viewModel.UserItem + "\"" : viewModel.UserItem: null; model.MainCategory = viewModel.BaseTypes != null? _context.BaseTypes.SingleOrDefault(i => i.Id == viewModel.BaseTypes).Name: null; if (viewModel.Types != null) { string type = _context.Types.SingleOrDefault(i => i.Id == viewModel.Types).Name; model.Class = type.Contains(" ") ? "\"" + type + "\"" : type; } else { model.Class = null; } if (model.MainCategory != null && model.Class == null) { var classesList = _context.Types.Where(i => i.BaseTypeId == viewModel.BaseTypes).Select(i => i.Name).ToList(); foreach (var className in classesList) { if (className.Contains(" ")) { model.Class += "\"" + className + "\""; } else { model.Class += className; } model.Class += " "; } model.Class = model.Class.Trim(); } model.Corrupted = Convert.ToBoolean(viewModel.CorruptedSelect); model.DropLevel = viewModel.DropLevelSelectSign != null && viewModel.DropLevelSelect != null? InequalitySign.SelectSign(viewModel.DropLevelSelectSign.Value) + " " + viewModel.DropLevelSelect: null; model.Height = viewModel.HeightSelectSign != null && viewModel.HeightSelect != null? InequalitySign.SelectSign(viewModel.HeightSelectSign.Value) + " " + viewModel.HeightSelect: null; model.Identified = Convert.ToBoolean(viewModel.IdentifiedSelect); model.ItemLevel = viewModel.ItemLvlSelectSign != null && viewModel.ItemLvlSelect != null? InequalitySign.SelectSign(viewModel.ItemLvlSelectSign.Value) + " " + viewModel.ItemLvlSelect: null; if (model.ItemLevel == null) { model.ItemLevel = viewModel.ItemLvlRangeSelect1 != null && viewModel.ItemLvlRangeSelect2 != null ? ">= " + viewModel.ItemLvlRangeSelect1 + "\n" + "<= " + viewModel.ItemLvlRangeSelect2 : null; } model.LinkedSockets = viewModel.LinkedSocketsNumberSelectSign != null && viewModel.LinkedSocketsNumberSelect != null? InequalitySign.SelectSign(viewModel.LinkedSocketsNumberSelectSign.Value) + " " + viewModel.LinkedSocketsNumberSelect: null; model.PlayAlertSound = viewModel.PlayAlertSoundTypeSelect != null && viewModel.PlayAlertSoundVolumeSelect != null ? viewModel.PlayAlertSoundTypeSelect + " " + viewModel.PlayAlertSoundVolumeSelect : null; model.Quality = viewModel.ItemQualitySelectSign != null && viewModel.ItemQualitySelect != null? InequalitySign.SelectSign(viewModel.ItemQualitySelectSign.Value) + " " + viewModel.ItemQualitySelect: null; model.Rarity = viewModel.ItemRaritySelectSign != null && viewModel.ItemRaritySelect != 300 ? InequalitySign.SelectSign(viewModel.ItemRaritySelectSign.Value) + " " + (Rarity)viewModel.ItemRaritySelect : null; model.SetBackgroundColor = viewModel.BackgroundColor != null ? viewModel.BackgroundColor + " " + viewModel.BackAlphaSelect : null; model.SetBorderColor = viewModel.BorderColor != null ? viewModel.BorderColor + " " + viewModel.BorderAlphaSelect : null; model.SetTextColor = viewModel.TextColor != null ? viewModel.TextColor + " " + viewModel.TextAlphaSelect : null; model.SetFontSize = viewModel.FontSizeSelect != null ? viewModel.FontSizeSelect : model.SetFontSize; model.Show = Convert.ToBoolean(viewModel.Show); model.Sockets = viewModel.SocketsNumberSelectSign != null && viewModel.SocketsNumberSelect != null? InequalitySign.SelectSign(viewModel.SocketsNumberSelectSign.Value) + " " + viewModel.SocketsNumberSelect: null; model.SocketsGroup = viewModel.RedSocketsSelect != null? string.Concat(Enumerable.Repeat("R", viewModel.RedSocketsSelect.Value)) : model.SocketsGroup; model.SocketsGroup = viewModel.GreenSocketsSelect != null ? model.SocketsGroup + string.Concat(Enumerable.Repeat("G", viewModel.GreenSocketsSelect.Value)) : model.SocketsGroup; model.SocketsGroup = viewModel.BlueSocketsSelect != null ? model.SocketsGroup + string.Concat(Enumerable.Repeat("B", viewModel.BlueSocketsSelect.Value)) : model.SocketsGroup; model.SocketsGroup = viewModel.WhiteSocketsSelect != null ? model.SocketsGroup + string.Concat(Enumerable.Repeat("W", viewModel.WhiteSocketsSelect.Value)) : model.SocketsGroup; model.Width = viewModel.WidthSelectSign != null && viewModel.WidthSelect != null? InequalitySign.SelectSign(viewModel.WidthSelectSign.Value) + " " + viewModel.WidthSelect: null; return(model); }
public ItemUserViewModel SaveItemUser(ItemUserViewModel itemUser) { return(repo.Save <ItemUserViewModel>(itemUser)); }