public async Task <IActionResult> AddQuestion(QuestionViewModel questionViewModel) { if (ModelState.IsValid) { try { var currentlySignedInUser = await _userManager.GetUserAsync(User); questionViewModel.UserId = currentlySignedInUser.Id; string uniqueFileName = null; if (questionViewModel.Image != null && _fileOperations.ValidateImageType(questionViewModel.Image.FileName) == true) { uniqueFileName = await SetPathAndUpload(questionViewModel); } var question = _mapper.Map <QuestionViewModel, Question>(questionViewModel); question.ImageNamePath = uniqueFileName; var resultQuestion = await _repository.AddQuestionAsync(question); return(RedirectToAction("Details", new { questionId = resultQuestion.Id })); } catch (DbUpdateException dbex) { ViewData["ErrorMessage"] = "DB issue - " + dbex.Message; return(View("Error")); } catch (Exception ex) { ViewData["ErrorMessage"] = ex.Message; return(View("Error")); } } return(View("AddQuestion")); }