public async Task <IActionResult> AddTag(TagViewModel tagViewModel, int questionId)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var question = await _repository.GetQuestionByIdWithoutDetailsAsync(questionId);

                    if (question == null)
                    {
                        Response.StatusCode      = 404;
                        ViewData["ErrorMessage"] = "404 Resource not found.";
                        return(View("Error"));
                    }
                    var tag = await _repository.GetTagByIdAsync(tagViewModel.Id);

                    if (tag == null)
                    {
                        Tag newTag = _mapper.Map <TagViewModel, Tag>(tagViewModel);
                        tag = await _repository.AddTagAsync(newTag);
                    }
                    await AttachQuestionTag(tag.Id, questionId);

                    return(RedirectToAction("Details", "Questions", new { questionId = questionId }));
                }
                catch (DbUpdateException dbex)
                {
                    ViewData["ErrorMessage"] = "DB issue - " + dbex.Message;
                    return(View("Error"));
                }
                catch (Exception ex)
                {
                    ViewData["ErrorMessage"] = ex.Message;
                    return(View("Error"));
                }
            }
            ViewData["questionId"] = questionId.ToString();
            return(View("AddTag", tagViewModel));
        }