public IActionResult AddTag(int id)
        {
            TagViewModel model = new TagViewModel
            {
                SongId = id
            };

            return(View(model));
        }
        public async Task <IActionResult> AddTag(TagViewModel model)
        {
            if (ModelState.IsValid)
            {
                Tag tag = new Tag
                {
                    Name = model.Name.ToLower(), UserId = int.Parse(User.FindFirstValue(ClaimTypes.NameIdentifier)), Verified = false
                };

                bool save = true;
                foreach (var element in dataManager.TagRepository.GetAll())
                {
                    if (element.Name == tag.Name)
                    {
                        tag  = element;
                        save = false;
                    }
                }

                if (save)
                {
                    tag.Id = dataManager.TagRepository.Save(tag);
                }

                var song = dataManager.SongRepository.Get(model.SongId);
                var id   = User.FindFirstValue(ClaimTypes.NameIdentifier);
                if (!song.Tags.Any(t => t.Name == tag.Name))
                {
                    song.Tags.Add(tag);
                    dataManager.SongRepository.Save(song);
                    if (!save)
                    {
                        await hubContext.Clients.User(id).SendAsync("notify", "Your tag is already verified and was added");
                    }
                    else
                    {
                        await hubContext.Clients.User(id).SendAsync("notify", "Your tag will be verified");
                    }
                }
                else
                {
                    await hubContext.Clients.User(id).SendAsync("notify", "This song already has your tag");
                }

                return(Redirect("/"));
            }
            return(View(model));
        }