示例#1
0
        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);
        }
示例#2
0
        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());
        }
示例#3
0
 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
         }));
     }
 }
示例#4
0
        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));
        }