示例#1
0
        public CreateOfferRatingDto Insert(CreateOfferRatingDto rateDto)
        {
            if (rateDto == null)
            {
                throw new ArgumentNullException();
            }

            var ReserveOffer = TheUnitOfWork.ReserveOfferRepo.GetById(rateDto.ReserveOfferId);

            var doctorOffer = TheUnitOfWork.MakeOfferRepo.GetById(ReserveOffer.MakeOfferId);

            doctorOffer.CountOfRating++;
            doctorOffer.SumOfRating += rateDto.Rate;
            doctorOffer.AverageRate  = doctorOffer.SumOfRating / doctorOffer.CountOfRating;
            TheUnitOfWork.MakeOfferRepo.Update(doctorOffer);

            ReserveOffer.IsRated = true;
            TheUnitOfWork.ReserveOfferRepo.Update(ReserveOffer);

            rateDto.MakeOfferId = ReserveOffer.MakeOfferId;
            OfferRating Rate = Mapper.Map <OfferRating>(rateDto);

            TheUnitOfWork.OfferRatingRepo.Insert(Rate);
            TheUnitOfWork.SaveChanges();

            return(rateDto);
        }
示例#2
0
 public IActionResult Create(CreateOfferRatingDto rateDto)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest(ModelState));
     }
     try
     {
         var UserId = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value;
         rateDto.UserId = UserId;
         var result = _offerRatingAppService.Insert(rateDto);
         _generalAppService.CommitTransaction();
         return(Ok(result));
     }
     catch (Exception ex)
     {
         _generalAppService.RollbackTransaction();
         return(BadRequest(new Response {
             Message = ex.Message
         }));
     }
 }