public CreateRatingDto Insert(CreateRatingDto rateDto) { if (rateDto == null) { throw new ArgumentNullException(); } var reserve = TheUnitOfWork.ReservationRepo.GetById(rateDto.ReservationId); reserve.IsRated = true; TheUnitOfWork.ReservationRepo.Update(reserve); var doctor = TheUnitOfWork.DoctorRepo.GetById(reserve.doctorId); doctor.CountOfRating++; doctor.SumOfRating += rateDto.Rate; doctor.AverageRate = doctor.SumOfRating / doctor.CountOfRating; TheUnitOfWork.DoctorRepo.Update(doctor); rateDto.DoctorId = reserve.doctorId; Rating Rate = Mapper.Map <Rating>(rateDto); TheUnitOfWork.RatingRepo.Insert(Rate); TheUnitOfWork.SaveChanges(); return(rateDto); }
public async Task <ActionResult> CreateRating([FromRoute] string articleId, [FromBody] CreateRatingDto dto) { var article = await _appDbContext.Articles.FirstOrDefaultAsync(i => i.Id == Guid.Parse(articleId)); var newRating = new ArticleRating() { Article = article, Title = dto.Title, Content = dto.Content, Rating = dto.Rating, Submitter = await GetCurrentUser() }; article.Ratings.Add(newRating); await _appDbContext.SaveChangesAsync(); return(Ok()); }
public IActionResult Create(CreateRatingDto rateDto) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var UserId = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value; rateDto.UserId = UserId; var result = _ratingAppService.Insert(rateDto); _generalAppService.CommitTransaction(); return(Ok(result)); } catch (Exception ex) { _generalAppService.RollbackTransaction(); return(BadRequest(new Response { Message = ex.Message })); } }
public async Task <IActionResult> PostRating([FromBody] CreateRatingDto createRatingDto) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var newRating = mapper.Map <CreateRatingDto, Rating>(createRatingDto); context.Ratings.Add(newRating); await context.SaveChangesAsync(); var ratingDto = new RatingDto { NewsId = newRating.NewsId }; var listRatingsByNews = context.Ratings.Where(rating => rating.NewsId == newRating.NewsId); ratingDto.Rating = await listRatingsByNews.AverageAsync(rating => rating.Value); ratingDto.RatingCount = await listRatingsByNews.CountAsync(); return(CreatedAtRoute(new { id = newRating.Id }, ratingDto)); }