Beispiel #1
0
        public async Task <int> Create(Comment comment, User user, IFormFile file)
        {
            comment.Id    = 0;
            comment.User  = user;
            comment.Date  = DateTime.Now;
            comment.Reply = await _replyService.GetAsync(comment.Reply.Id);

            var rating = await _context.Rating
                         .SingleOrDefaultAsync(r => r.User.Equals(comment.User) && r.Topic.Equals(comment.Reply.Question.Topic));

            if (rating == null)
            {
                await _ratingService.Create(user, comment.Reply.Question.Topic);
            }

            if (file != null)
            {
                var fileName = DateTime.Now.Ticks + ".jpg";
                var dirPath  = Path.Combine(_appEnvironment.WebRootPath, "Uploads");
                Directory.CreateDirectory(dirPath);
                var path = Path.Combine(dirPath, fileName);
                using (Stream stream = File.Create(path))
                {
                    await file.CopyToAsync(stream);

                    comment.Attachment = fileName;
                }
            }

            _context.Add(comment);
            await _context.SaveChangesAsync();

            return(comment.Reply.Question.Id);
        }
        public async Task <int> CreateRatingAsync(RatingDTO rating)
        {
            using (var uow = UnitOfWorkProvider.Create())
            {
                if (rating.RatedUserRole == UserRole.Corporation)
                {
                    var corporation = await corporationService.GetAsync(rating.RatedUserId);

                    if (!corporation.SumRating.HasValue)
                    {
                        corporation.SumRating = 0;
                    }
                    corporation.SumRating   += rating.Score;
                    corporation.RatingCount += 1;
                    await corporationService.Update(corporation);
                }
                else
                {
                    var freelancer = await freelancerService.GetAsync(rating.RatedUserId);

                    if (!freelancer.SumRating.HasValue)
                    {
                        freelancer.SumRating = 0;
                    }
                    freelancer.SumRating   += rating.Score;
                    freelancer.RatingCount += 1;

                    await freelancerService.Update(freelancer);
                }
                var ratingId = ratingService.Create(rating);
                await uow.Commit();

                return(ratingId);
            }
        }
        public IActionResult SetStatusAccepted(int id)
        {
            var inscription = _inscriptionService.GetById(id);

            if (inscription == null)
            {
                return(BadRequest());
            }

            inscription.Status = Entities.Enums.EnrollmentStatus.Accepted;
            _inscriptionService.Update(inscription);

            var rating = new Rating()
            {
                CourseId = inscription.CourseId,
                UserId   = inscription.UserId
            };

            _ratingService.Create(rating);

            Services.Courses.DTOs.InscriptionFilter filter = new InscriptionFilter()
            {
                CourseId = inscription.CourseId
            };
            var result = _inscriptionService.GetListUser(1, 50, null, filter).Entities.SingleOrDefault(e => e.Id == id);

            return(new JsonResult(result));
        }
Beispiel #4
0
        public void CreateRating_UnderNormalConditions_ReturnsOkResponse()
        {
            //Arrange
            var ratingToCreate = new RatingDto()
            {
                InstructorId     = 5,
                ClassId          = 5,
                ClassRating      = 5,
                Comment          = "Creating a new rating comment..",
                InstructorRating = 5,
                RatingId         = 5
            };

            Mock.Arrange(() => _ratingService.Create(ratingToCreate))
            .Returns(ratingToCreate)
            .OccursOnce();

            var ratingController = new RatingController(_ratingService)
            {
                Request = new HttpRequestMessage()
                {
                    RequestUri = new Uri("http://localhost/api/rating")
                }
            };

            //Act
            var actual        = ratingController.Post(ratingToCreate) as CreatedNegotiatedContentResult <RatingDto>;
            var actualContent = actual.Content;

            //Assert
            Mock.Assert(_ratingService);
            Assert.IsNotNull(actual);
            Assert.That(actual, Is.TypeOf <CreatedNegotiatedContentResult <RatingDto> >());
            Assert.That(actualContent, Is.EqualTo(ratingToCreate));
        }
Beispiel #5
0
 public IHttpActionResult Post(RatingDto rating)
 {
     using (_ratingService)
     {
         var response = _ratingService.Create(rating);
         return(Created(new Uri(Request.RequestUri, $"{response.RatingId}"), response));
     }
 }
Beispiel #6
0
        private IActionResult CreateAsFreeLancer(long clientId, long jobId, RatingRequest model)
        {
            if (!_ratingService.FreeLancerCanWriteReview(jobId, clientId))
            {
                return(Forbid());
            }

            var jobOwnerId = _jobService.Get(jobId).ClientId;

            var rating = _mapper.Map <Rating>(model);

            rating.ClientIdFrom = clientId;
            rating.ClientIdTo   = jobOwnerId;
            rating.JobId        = jobId;

            _ratingService.Create(rating);

            return(Ok());
        }
Beispiel #7
0
        public IActionResult PostRating([FromBody] Rating entity)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Rating rating = _service.Create(entity);

            return(Ok(rating));
        }
        public async Task <Guid> CreateRatingAsync(RatingDto rating, string userEmail)
        {
            using (var uow = UnitOfWorkProvider.Create())
            {
                rating.SellerId = (await _userService.GetUserAccordingToEmailAsync(userEmail)).Id;
                var ratingId = _ratingService.Create(rating);
                await uow.Commit();

                return(ratingId);
            }
        }
Beispiel #9
0
 public IActionResult ThumbsUp(int bid, int id, CreateCommentViewModel vm)
 {
     if (User.Identity.IsAuthenticated)
     {
         // if rating found by userId exist as ThumbsUp = true(1) already
         var ratings = _ratingService.GetByCommentUserId(id, _userManager.GetUserId(User));
         vm.Product = _productService.GetById(bid);
         int checker = 1;
         foreach (var rating in ratings)
         {
             if (rating.ThumbsUp == true)
             {
                 checker = 0;    // user can vote only if checker stays 1
             }
         }
         if (checker == 1)       // user can vote ThumbsUp for the comment
         {
             Rating newRating = new Rating();
             newRating.ThumbsUp  = true;
             newRating.CommentId = id;
             newRating.UserId    = _userManager.GetUserId(User);
             _ratingService.Create(newRating);
             vm.RatingSucceed = true;
         }
         else if (checker == 0)
         {
             vm.RatingSucceed = false;
             return(View(vm));
         }
     }
     else
     {
         return(RedirectToAction("SignIn", "Account"));
     }
     return(RedirectToAction("Details", "Product", new { id = bid, vm }));
 }
Beispiel #10
0
 public ActionResult Rating(RatingViewModel ratingViewModel)
 {
     try
     {
         var ratingDTO = ConvertToRatingDTO(ratingViewModel);
         _ratingService.Create(ratingDTO);
         TempData["AlertSuccess"] = "Operation Done!";
     }
     catch (Exception e)
     {
         this.ModelState.AddModelError("CustomError", e.Message);
         return(View(ratingViewModel));
     }
     return(RedirectToAction("Index"));
 }
        public IActionResult AddRating(RatingViewModel ratingViewModel)
        {
            if (String.IsNullOrEmpty(HttpContext.Session.GetString("UserId")))
            {
                return(RedirectToAction("Login", "UserEntry"));
            }
            var ratingDto = new RatingDto
            {
                Stars  = ratingViewModel.Stars,
                ToGame = ratingViewModel.ToGame,
                UserId = new Guid(HttpContext.Session.GetString("UserId"))
            };

            ratingService.Create(ratingDto);
            return(RedirectToAction("ShowGames", "Home"));
        }
 public ActionResult CreateRating(RatingViewModel rating)
 {
     try
     {
         if (!ModelState.IsValid)
         {
             throw new Exception(ModelState.ToString());
         }
         _ratingService.Create(rating);
         return(Ok());
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
Beispiel #13
0
        public ActionResult Rating(string idMovie, string feedback, double starRate)
        {
            var use             = _applicationUserService.GetUserFromUserName(User.Identity.Name);
            var ratingViewModel = new RatingViewModel()
            {
                UserId     = use.Id,
                MovieId    = Guid.Parse(idMovie),
                Feedback   = feedback,
                StarRating = starRate
            };

            var result    = "success";
            var oldRating = _ratingService.Find(ratingViewModel.MovieId, ratingViewModel.UserId);

            if (oldRating != null)
            {
                result = "faild";
            }
            else
            {
                var    rating     = Mapper.Map <Rating>(ratingViewModel);
                var    listRating = _ratingService.GetAllRatingByIdMovie(ratingViewModel.MovieId);
                double value      = 0;
                if (listRating != null)
                {
                    foreach (var item in listRating)
                    {
                        value += item.StarRating;
                    }
                }
                float star = (float)((value + rating.StarRating) / (listRating.Count + 1));

                var movie = _moviesService.Find(ratingViewModel.MovieId);
                movie.Rating = star;

                _moviesService.Update(movie, movie.Id);
                _ratingService.Create(rating);
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }