예제 #1
0
        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());
            }
        }
예제 #2
0
        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());
            }
        }
예제 #3
0
        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));
        }
예제 #4
0
        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"));
        }