public async Task <IActionResult> AddRating(BarViewModel bar)
        {
            int userId = int.Parse(User.FindFirstValue(ClaimTypes.NameIdentifier));

            var barRating = new BarRatingViewModel
            {
                Value  = (bar.SelectedRating),
                BarId  = bar.Id,
                UserId = userId,
            };

            var barRatingDto = this.barRatingVmMapper.MapDTO(barRating);

            var rating = await this.barRatingService.CreateRatingAsync(barRatingDto);

            var currentBar = await this.barService.GetBarAsync(rating.BarId);

            var barVM = this.barVmMapper.MapViewModel(currentBar);

            var DtoComments = await this.barCommentsService.GetBarCommentsAsync(barVM.Id);

            barVM.Comments      = this.barCommentVmMapper.MapViewModel(DtoComments);
            barVM.AverageRating = this.barRatingService.GetAverageBarRating(bar.Id);

            return(RedirectToAction("Details", "Bars", new { area = "", id = barVM.Id }));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> RateBar(int rating, Guid id)
        {
            var viewModel = new BarRatingViewModel();

            viewModel.UserId = Guid.Parse(manager.GetUserId(HttpContext.User));
            viewModel.BarId  = id;
            viewModel.Rating = rating;

            await barRatingServices.CreateRating(viewModel.GetDtoFromVM());


            return(RedirectToAction("ListBars", "Bar", new { Area = "" }));
        }
        public static BarRatingDTO GetDtoFromVM(this BarRatingViewModel item)
        {
            if (item == null)
            {
                throw new ArgumentNullException();
            }

            return(new BarRatingDTO
            {
                UserId = item.UserId,
                BarId = item.BarId,
                Rating = item.Rating,
            });
        }
Exemplo n.º 4
0
        public async Task <IActionResult> Create(BarRatingViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var user = await this.userManager.GetUserAsync(User);

                var userName = user.Email.Split('@')[0];

                viewModel.UserId   = user.Id;
                viewModel.UserName = userName;
                var ratingDto = this.modelMapper.MapFrom(viewModel);


                await this.barRatingService.CreateAsync(ratingDto);

                return(RedirectToAction("Details", "Bars", new { id = viewModel.BarId }));
            }

            return(View(viewModel));
        }