public async Task <IActionResult> Create([FromBody] BarCommentViewModel viewModel)
        {
            try
            {
                var user = await this.userManager.GetUserAsync(User);

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

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

                var newCommentDto = await this.barCommentService.CreateAsync(commentDto);

                var newCommentVm = this.modelMapper.MapFrom(newCommentDto);

                this.toastNotification.AddSuccessToastMessage("Comment magically posted.");

                return(PartialView("_AddBarCommentPartial", newCommentVm));
            }
            catch (Exception)
            {
                this.toastNotification.AddErrorToastMessage("Text must be between 2 and 500 symbols.");
            }

            return(View(viewModel));
        }
Пример #2
0
        public async Task <IActionResult> AddComment(BarViewModel bar)
        {
            int userId = int.Parse(User.FindFirstValue(ClaimTypes.NameIdentifier));
            var author = HttpContext.User.Identity.Name;

            var barComment = new BarCommentViewModel
            {
                Text   = bar.CurrentComment,
                BarId  = bar.Id,
                UserId = userId,
                Author = author,
            };

            var barCommentDto = this.barCommentVmMapper.MapDTO(barComment);

            var comment = await this.BarCommentsService.CreateCommentAsync(barCommentDto);

            var currentBar = await this.barService.GetBarAsync(comment.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 }));
        }
Пример #3
0
        public async Task <IActionResult> CommentOnBar(Guid id, BarCommentViewModel viewModel)
        {
            viewModel.UserId = Guid.Parse(manager.GetUserId(HttpContext.User));
            viewModel.BarId  = id;

            await barCommentsServices.CreateComment(viewModel.GetDtoFromVM());

            var barid = viewModel.BarId;

            return(RedirectToAction("Details", "Bar", barid));
        }
Пример #4
0
 public static BarCommentDTO GetDtoFromVM(this BarCommentViewModel item)
 {
     if (item == null)
     {
         throw new ArgumentNullException();
     }
     return(new BarCommentDTO
     {
         UserId = item.UserId,
         BarId = item.BarId,
         Comments = item.Comment,
     });
 }