public Ratings RateUser(int userId, int points) { /* * TODO ... * check if user is not rating himself, * check if user is not rating other user with same profession, * authenticate the users that are providing rating by phone number */ Users user = GetUserById(userId); if (user == null) { throw new NoEntryFoundException(userId, typeof(Users).Name); } Ratings rate = new Ratings { UserId = user.Id, FeedbackPoints = points, FeedbackDateTime = DateTime.UtcNow }; FeedbackRepository.Add(rate); user.RatingSum += rate.FeedbackPoints; user.RatingCount++; UsersRepository.Update(user); return(rate); }
public async Task <IActionResult> Add([FromBody] FeedbackViewModel feedbackViewModel) { try { bool isExistedFeedbackByUserIdAndCourseId = await feedbackRepository.IsExistedFeedbackByStudentIdAndCourseId(feedbackViewModel.UserId, feedbackViewModel.CourseId); if (isExistedFeedbackByUserIdAndCourseId == true) { return(BadRequest(new { Errors = new { Code = "ExistedFeedback", Description = "Feedback has already existed!" } })); } Feedback feedbackMapped = mapper.Map <Feedback>(feedbackViewModel); await feedbackRepository.Add(feedbackMapped); return(Ok(new { Results = feedbackMapped })); } catch (Exception e) { Console.WriteLine($"ErrorMesages: {e}"); return(BadRequest(new { Errors = new { Code = "InvalidInputParameters", Description = "Invalid Input Parameters!" } })); } }
public async Task <IActionResult> CreateLangFirstGradeQuestions(LangFirstGradeQuestionDto fullQuestion) { if (ModelState.IsValid) { var category = await _questionCategoryRepo.GetById(fullQuestion.QuestionCategory); var answer = new Answer() { LangAnswer = fullQuestion.Answer }; await _answerRepo.Add(answer); var question = new Question() { QuestionTitle = fullQuestion.QuestionTitle, FileName = fullQuestion.FileName, Answer = answer, QuestionCategory = category }; await _repository.Add(question); foreach (var item in fullQuestion.Feedback) { var feedback = new Feedback() { Description = item.Description, Question = question }; await _feedBackRepo.Add(feedback); } return(Ok()); } return(BadRequest()); }
public void AddFeedbacks() { for (var i = 0; i < Count; i++) { var inputData = new AddFeedbackRequest { Description = Fixture.Create <string>(), DueDate = Fixture.Create <DateTime>() }; var l = Repository.Add(FeedbackMapper.MapToDomainFromAddRequest(inputData)).GetAwaiter().GetResult(); } }
public void FeedbackTest() { var repository = new FeedbackRepository(new MongoContext("mongodb://localhost/WeatherAggregator")); var listBefore = repository.GetAll(); repository.Add(new Feedback { DateCreated = DateTime.Now, Email = "lol.com", Name = "lol", Text = "Text" }); var listAfter = repository.GetAll(); Assert.Greater(listAfter.Count, listBefore.Count, "The item hasn't been added."); }
//public IEnumerable<FeedbackDTO> GetFeedbackById(int id) //{ // return from f in _repo.GetFeedbackById() // where f.BusinessId == id // select new FeedbackDTO // { // Id = f.Id, // Title = f.Title, // Message = f.Message, // TimePosted = f.TimePosted, // StarRating = f.StarRating, // isAnonymous = f.isAnonymous, // Comments = (from c in f.Comments // select new CommentDTO // { // Id = c.Id, // Message = c.Message, // TimePosted = c.TimePosted // }).ToList() // }; //} public void Add(FeedbackDTO feedbackDTO, string username, int id) { Feedback newfeedback = new Feedback { Message = feedbackDTO.Message, Title = feedbackDTO.Title, ApplicationUserId = username, BusinessId = id }; _repo.Add(newfeedback); }
public FeedbackModule() { IFeedbackRepository repo = new FeedbackRepository(ConfigurationManager.ConnectionStrings["happyIndex"].ConnectionString); Get["/api/feedback/{id:Guid}"] = parameters => { return(repo.GetById(parameters.id)); }; Get["/api/feedback"] = _ => { var feedbackData = repo.GetAll(); var feedback = new List <Feedback>(); foreach (var f in feedbackData) { feedback.Add(new Feedback() { CreateDate = f.CreateDate, Id = f.Id, Indicator = f.Indicator, PollingStation = f.PollingStation, QuestionId = f.QuestionId, QuestionsShownIds = f.QuestionsShownIds }); } return(feedback); }; Post["/api/feedback"] = _ => { var feedback = this.Bind <Feedback>(); var newFeedback = repo.Add(feedback.Indicator, feedback.QuestionId, DateTime.UtcNow, feedback.PollingStation, feedback.QuestionsShownIds); return(newFeedback); }; Delete["/api/feedback/{id:Guid}"] = parameters => { return(repo.DeleteById(parameters.id)); }; }