public void Add(AddReviewDto dto, string currentUserId)
        {
            UserManager.IsUserInRegularRole(currentUserId);
            var user = UserManager.CheckAndGet(currentUserId);

            var carService = UnitOfWork.Repository <ICarServiceRepository>().Get(dto.ServiceId);

            if (carService == null)
            {
                throw new BusinessFaultException(BusinessLogicExceptionResources.CarServiceNotFound);
            }

            if (carService.Reviews.Any(rev => !rev.IsDeleted && rev.User.ApplicationUser.Id == currentUserId))
            {
                throw new BusinessFaultException(BusinessLogicExceptionResources.ReviewAlreadyContains);
            }

            var validationResult = _validationManager.ValidateOperateReviewDto(dto);

            if (validationResult.HasErrors)
            {
                throw new BusinessFaultException(validationResult.GetErrors());
            }

            var review = Mapper.Map <CarServiceReview>(dto);

            review.User        = user.UserProfile;
            review.Service     = carService;
            carService.Points += review.Mark;

            review.Service.Reviews.Add(review);
            UnitOfWork.SaveChanges();
        }
Example #2
0
        public async Task TestAddReviewDto()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <BookDbContext>();

            using var context = new BookDbContext(options);
            context.Database.EnsureCreated();
            var books = context.SeedDatabaseFourBooks();

            context.ChangeTracker.Clear();

            var utData  = context.SetupSingleDtoAndEntities <AddReviewDto>();
            var service = new CrudServicesAsync(context, utData.ConfigAndMapper);

            //ATTEMPT
            var dto = new AddReviewDto
            {
                BookId = books[0].BookId, NumStars = 5, Comment = "Great Book", VoterName = "Test"
            };
            await service.UpdateAndSaveAsync(dto);

            //VERIFY
            var book = context.Books.Include(x => x.Reviews).Single(x => x.BookId == books[0].BookId);

            book.Reviews.Count.ShouldEqual(1);
            book.Reviews.Single().NumStars.ShouldEqual(5);
            book.Reviews.Single().Comment.ShouldEqual("Great Book");
            book.Reviews.Single().VoterName.ShouldEqual("Test");
        }
        public IActionResult AddReview(AddReviewDto dto)
        {
            try
            {
                ValidateCaptcha();

                using (var uow = _vendrApi.Uow.Create())
                {
                    var review = new Review(dto.StoreId, dto.ProductReference, dto.CustomerReference)
                    {
                        Rating           = dto.Rating,
                        Title            = dto.Title,
                        Email            = dto.Email,
                        Name             = dto.Name,
                        Body             = dto.Body,
                        RecommendProduct = dto.RecommendProduct
                    };

                    _reviewService.SaveReview(review);

                    uow.Complete();
                }
            }
            catch (ValidationException ex)
            {
                ModelState.AddModelError("", "Failed to submit review: " + ex.Message);

                return(CurrentUmbracoPage());
            }

            TempData["SuccessMessage"] = "Review successfully submitted";

            return(RedirectToCurrentUmbracoPage());
        }
Example #4
0
        public async Task <ServiceResponse <bool> > AddReviewToFlight(AddReviewDto review)
        {
            ServiceResponse <bool> serviceResponse = new ServiceResponse <bool>();

            try
            {
                User dbUser = await _context.Users.FirstOrDefaultAsync(u => u.Id == review.UserId);

                Flight dbFlight = await _context.Flights.FirstOrDefaultAsync(f => f.Id == review.FlightId);

                Review dbReview = new Review()
                {
                    User   = dbUser,
                    Flight = dbFlight,
                    Rating = review.Rating
                };

                await _context.Reviews.AddAsync(dbReview);

                await _context.SaveChangesAsync();

                serviceResponse.Data = true;
            }
            catch (Exception ex)
            {
                serviceResponse.Success = false;
                serviceResponse.Message = ex.Message;
            }

            return(serviceResponse);
        }
        public IActionResult AddReview(AddReviewDto dto, [FromServices] IAddReviewService service)
        {
            var book = service.AddReviewToBook(dto);

            SetupTraceInfo();
            return(View("BookUpdated", "Successfully added a review"));
        }
 public void OnGet(int id)
 {
     Data = _service.ReadSingle <AddReviewDto>(id);
     if (!_service.IsValid)
     {
         _service.CopyErrorsToModelState(ModelState, Data, nameof(Data));
     }
 }
        public Book AddReviewToBook(AddReviewDto dto)
        {
            var book = _context.Find <Book>(dto.BookId);

            if (book == null)
            {
                throw new InvalidOperationException($"Could not find the book with Id of {dto.BookId}.");
            }
            book.AddReview(dto.NumStars, dto.Comment, dto.VoterName, _context);
            _context.SaveChanges();
            return(book);
        }
        public EditorViewModel(EditorListDto loggedEditor, UpdateManuscriptService updateManuscriptService,
                               AddReviewService addReviewService, ListFrontReviewerService listFrontReviewerService) : this(new EfCoreContext())
        {
            LoggedEditor    = loggedEditor;
            EditorFirstName = loggedEditor.Name.Split(' ').First() + "!";

            InputOrderInIssue        = "";
            InputTotalPagesOccupied  = "";
            InputBeginningPageNumber = "";

            _updateManuscriptService  = updateManuscriptService;
            _addReviewService         = addReviewService;
            _listFrontReviewerService = listFrontReviewerService;

            FrontReviewerList = GetReviewerSelectionList();

            ManuscriptToUpdate = new ManuscriptListDto();
            ReviewToAdd        = new AddReviewDto();

            _manuscriptService = new ListManuscriptService(_context);
            _issueService      = new ListIssueService(_context);
            _reviewService     = new ListReviewService(_context);

            var manuscripts = _manuscriptService.GetManuscriptList().ToList();
            var issues      = _issueService.GetIssueList().ToList();
            var reviews     = _reviewService.GetReviewList().ToList();

            ManuscriptList = new ObservableCollection <ManuscriptListDto>(manuscripts);
            IssueList      = new ObservableCollection <IssueListDto>(issues);
            ReviewList     = new ObservableCollection <ReviewListDto>(reviews);

            foreach (var manuscript in ManuscriptList)
            {
                if (manuscript.ManuscriptStatus == 1)
                {
                    ReceivedManuscriptList.Add(manuscript);
                }
                if (manuscript.ManuscriptStatus == 3)
                {
                    foreach (var review in ReviewList)
                    {
                        if (review.ManuscriptId == manuscript.ManuscriptId && review.AppropriatenessScore != 0 && UnderReviewManuscriptList.Contains(manuscript) != true)
                        {
                            UnderReviewManuscriptList.Add(manuscript);
                        }
                    }
                }
                if (manuscript.ManuscriptStatus == 4)
                {
                    AcceptedManuscriptList.Add(manuscript);
                }
            }
        }
Example #9
0
        public Book AddReviewToBook(AddReviewDto dto)
        {
            var book = _context.Find <Book>(dto.BookId);

            if (book == null)
            {
                AddError("Sorry, I could not find the book you were looking for.");
                return(null);
            }
            book.AddReview(dto.NumStars, dto.Comment, dto.VoterName, _context);
            _context.SaveChanges();
            return(book);
        }
Example #10
0
        public async Task TestDeleteReviewOk()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <ExampleDbContext>();

            using (var context = new ExampleDbContext(options))
            {
                context.Database.EnsureCreated();
                context.SeedDatabase();

                var controller = new BookController();
                var utData     = context.SetupSingleDtoAndEntities <AddReviewDto>(_genericServiceConfig);
                var service    = new CrudServicesAsync(context, utData.ConfigAndMapper);

                //ATTEMPT
                var dto = new AddReviewDto()
                {
                    BookId    = 1,
                    Title     = "Efcore in action",
                    VoterName = "test",
                    NumStars  = 5,
                    Comment   = "test comment",
                };
                var response = await controller.AddReview(dto, service);

                //VERIFY
                response.GetStatusCode().ShouldEqual(200);


                //Delete review

                utData  = context.SetupSingleDtoAndEntities <RemoveReviewDto>(_genericServiceConfig);
                service = new CrudServicesAsync(context, utData.ConfigAndMapper);

                //ATTEMPT
                var removeReviewDto = new RemoveReviewDto()
                {
                    BookId   = 1,
                    ReviewId = 1
                };
                response = await controller.DeleteReview(removeReviewDto, service);

                //VERIFY
                response.GetStatusCode().ShouldEqual(200);
            }
        }
        public IActionResult AddBookReview(AddReviewDto dto, [FromServices] ICrudServices service)
        {
            if (!ModelState.IsValid)
            {
                return(View(dto));
            }
            service.UpdateAndSave(dto);
            SetupTraceInfo();
            if (service.IsValid)
            {
                return(View("BookUpdated", service.Message));
            }

            //Error state
            service.CopyErrorsToModelState(ModelState, dto);
            return(View(dto));
        }
Example #12
0
        public async Task <IActionResult> AddBookReview(AddReviewDto dto, [FromServices] ICrudServicesAsync <BookDbContext> service)
        {
            Request.ThrowErrorIfNotLocal();
            if (!ModelState.IsValid)
            {
                return(View(dto));
            }
            await service.UpdateAndSaveAsync(dto);

            SetupTraceInfo();
            if (service.IsValid)
            {
                return(View("BookUpdated", new BookUpdatedDto(service.Message, _backToDisplayController)));
            }

            //Error state
            service.CopyErrorsToModelState(ModelState, dto);
            return(View(dto));
        }
        public void RunGenericService()
        {
            //SETUP
            using (var context = new EfCoreContext(_options))
            {
                var service    = new CrudServices <EfCoreContext>(context, _utData.ConfigAndMapper);
                var numReviews = context.Set <Review>().Count();

                //ATTEMPT
                var dto = new AddReviewDto {
                    BookId = 1, Comment = "comment", NumStars = 3, VoterName = "user"
                };
                service.UpdateAndSave(dto, nameof(Book.AddReview));

                //VERIFY
                service.IsValid.ShouldBeTrue(service.GetAllErrors());
                context.Set <Review>().Count().ShouldEqual(numReviews + 1);
            }
        }
        public ActionResult Add(AddReviewDto addReviewDto)
        {
            if (User.IsInRole("Doctor"))
            {
                return(BadRequest("Nu aveti dreptul de a adauga review-uri!"));
            }

            var userPacientId = User.GetUserId();

            var pacientId = _context.Pacients.FirstOrDefault(c => c.UserId == userPacientId).Id;

            addReviewDto.PacientId = pacientId;

            if (_reviewRepository.AddReview(addReviewDto))
            {
                return(Ok());
            }

            return(BadRequest("Nu am putut adauga review-ul!"));
        }
        public bool AddReview(AddReviewDto addReviewDto)
        {
            var newReview = new Review
            {
                PacientId = (int)addReviewDto.PacientId,
                DoctorId  = addReviewDto.DoctorId,
                Rating    = addReviewDto.Rating,
                Content   = addReviewDto.Content,
                DateAdded = DateTime.UtcNow
            };

            _context.Reviews.Add(newReview);

            if (_context.SaveChanges() > 0)
            {
                return(true);
            }

            return(false);
        }
Example #16
0
        public async Task <ActionResult <ReviewDto> > ReviewAsync(AddReviewDto inputModel)
        {
            var user = await userManager.GetUserAsync(User);

            var review = new Review
            {
                UserId = user.Id,
                BookId = inputModel.BookId,
                Text   = inputModel.Review
            };

            dbContext.Reviews.Add(review);
            await dbContext.SaveChangesAsync();

            return(new ReviewDto
            {
                Id = review.Id,
                Text = review.Text,
                Author = user.UserName,
                DateTime = review.DateTime
            });
        }
Example #17
0
        public async Task <ActionResult <WebApiMessageOnly> > AddReview(AddReviewDto item, [FromServices] ICrudServicesAsync service)
        {
            await service.UpdateAndSaveAsync(item, nameof(Book.AddReview));

            return(service.Response());
        }
Example #18
0
 public IHttpActionResult Add(AddReviewDto dto)
 {
     return(CallBusinessLogicAction(() => _manager.Add(dto, User.Identity.GetUserId())));
 }
 public async Task <IActionResult> AddReview(AddReviewDto review)
 {
     return(Ok(await _flightService.AddReviewToFlight(review)));
 }
Example #20
0
 public ActionResult <WebApiMessageOnly> AddReview2(
     AddReviewDto dto, [FromServices] ICrudServices service)
 {
     service.UpdateAndSave(dto);
     return(service.Response());
 }