Пример #1
0
        public JsonResult Add([FromForm] QuestionViewModel question, IFormFile file)
        {
            Question entry = _questionsRepository.AddQuestion(question.ToQuestion(), file);

            _hubContext.Clients.All.SendAsync("Increment");
            return(Json(question));
        }
Пример #2
0
        //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"));
            }
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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));
        }