public async Task <ActionResult> Create([FromForm] WebLinkModifyViewModel webLinkViewModel) { try { var webLink = webLinkViewModel.WebLink; webLink.Id = Guid.NewGuid(); webLink.CreatedDateTime = DateTime.Now; webLink.FaviconImageBytes = await LoadFavIcon(webLink.Url); _context.WebLinks.Add(webLink); _context.SaveChanges(); //links foreach (var category in webLinkViewModel.CategoryItems) { if (!category.IsSelected) { continue; } var webLinkCategory = new WebLinkCategory { WebLinkId = webLink.Id, CategoryId = category.Id }; _context.WebLinkCategories.Add(webLinkCategory); _context.SaveChanges(); } return(RedirectToAction(nameof(Index))); } catch { return(View()); } }
public async Task <ActionResult> Edit(Guid id, [FromForm] WebLinkModifyViewModel webLinkViewModel) { try { var webLink = webLinkViewModel.WebLink; var originalWebLink = _context.WebLinks.FirstOrDefault(c => c.Id == id); if (originalWebLink.Url != webLink.Url || originalWebLink.FaviconImageBase64 == string.Empty) { originalWebLink.FaviconImageBytes = await LoadFavIcon(webLink.Url); } originalWebLink.Name = webLink.Name; originalWebLink.IsFaviourite = webLink.IsFaviourite; originalWebLink.IsSingleReadLink = webLink.IsSingleReadLink; originalWebLink.Url = webLink.Url; _context.SaveChanges(); //links foreach (var category in webLinkViewModel.CategoryItems) { var existingCategory = _context.WebLinkCategories.FirstOrDefault(wc => wc.WebLinkId == id && wc.CategoryId == category.Id); if (existingCategory != null) { if (category.IsSelected) { continue; } //remove _context.WebLinkCategories.Remove(existingCategory); } else { if (!category.IsSelected) { continue; } //add var webLinkCategory = new WebLinkCategory { WebLinkId = id, CategoryId = category.Id }; _context.WebLinkCategories.Add(webLinkCategory); } _context.SaveChanges(); } return(RedirectToAction(nameof(Index))); } catch { return(View()); } }
public ActionResult Create() { var newWebLink = new WebLink { Id = Guid.NewGuid(), CreatedDateTime = DateTime.Now }; var newWebLinkViewModel = new WebLinkModifyViewModel { WebLink = newWebLink }; newWebLinkViewModel.CategoryItems = _context.Categories.OrderBy(c => c.Name).Select(c => new CategoryItem { Id = c.Id, Name = c.Name, IsSelected = false }).ToList(); return(View(newWebLinkViewModel)); }
public ActionResult Details(Guid id) { var webLink = _context.WebLinks.FirstOrDefault(c => c.Id == id); var newWebLinkViewModel = new WebLinkModifyViewModel { WebLink = webLink }; newWebLinkViewModel.CategoryItems = _context.Categories.OrderBy(c => c.Name).Select(c => new CategoryItem { Id = c.Id, Name = c.Name, IsSelected = c.WebLinkCategories.Any(wc => wc.WebLinkId == id) }).ToList(); if (webLink != null) { return(View(newWebLinkViewModel)); } return(View("Index")); }