public JsonResult Add([FromForm] QuestionViewModel question, IFormFile file) { Question entry = _questionsRepository.AddQuestion(question.ToQuestion(), file); _hubContext.Clients.All.SendAsync("Increment"); return(Json(question)); }
//Post => api/Questions/user public async Task <ActionResult> Post(QuestionsViewModel model, string user) { try { if (ModelState.IsValid) { var questionTo = await _userManager.FindByNameAsync(user); if (questionTo == null) { return(NotFound("Couldn't find this User")); } var question = new Questions() { Question = model.Question, QuestionTo = questionTo, Time = DateTime.Now, IsAnswered = false, Answer = null, }; if (model.QuestionFrom != null) { var questionFrom = await _userManager.FindByNameAsync(model.QuestionFrom); question.QuestionFrom = questionFrom; } _questionsRepository.AddQuestion(question); if (_questionsRepository.SaveAll()) { return(Created("api/questions", new { message = "Question Sent" })); } else { _logger.LogWarning($"DateTime: {DateTime.Now} -- Error: Couldn't save the question into database"); return(BadRequest("Failed to save your question")); } } else { _logger.LogWarning($"DateTime: {DateTime.Now} -- Error: Question Format isn't right from Post"); return(BadRequest(ModelState)); } } catch (Exception e) { _logger.LogError($"DateTime:{DateTime.Now} -- Error:{e.Message}\n{e.StackTrace}"); return(StatusCode(StatusCodes.Status500InternalServerError, "Failed to retrieve data")); } }
private void CreateQuestion_Clicked() { var createQuestion = new CreateQuestionWindow(); createQuestion.ShowDialog(); if (createQuestion.DialogResult == true) { QuestionModel model = new QuestionModel(); model.Name = createQuestion.QuestionName; var id = _questionsRepository.AddQuestion(model); AvilableQuestions = _questionsRepository.ListOfQuestions(); SelectedQuestion = _questionsRepository.GetQuestion(id); } }
public async Task <IActionResult> Create([Bind("Title,Content,Tags")] QuestionViewModel q) { var user = await questionsRepository.getUserByUserName(User.Identity.Name); var question = new Question(); if (ModelState.IsValid) { question.TimeStamp = DateTime.UtcNow; question.Content = q.Content; question.Title = q.Title; question.User = user; await questionsRepository.AddQuestion(question); var AddedQuestion = await questionsRepository.getLastQuestion(); if (q.Tags != null) { q.Tags = q.Tags + ","; string[] listOfTags = (q.Tags).Split(","); for (int i = 0; i < listOfTags.Length - 1; i++) { Tag t = new Tag(); t.TagContent = listOfTags[i]; t.NumOfUses = 1; await tagsRepository.AddTags(t); var addedTag = await tagsRepository.GetTagByName(listOfTags[i]); TagPost tp = new TagPost(); tp.QuestionId = AddedQuestion.Id; tp.TagId = addedTag.Id; await tagPostRepository.AddTagPost(tp); } } await notificationRepository.AddUserToNotificationList(user.Id, AddedQuestion.Id, NotificationType.QUESTION); return(RedirectToAction("Details", new { question.Id })); } q.PopularTags = await tagsRepository.GetPopular(); return(View(q)); }