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)); }
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 })); }
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)); }
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, }); }