示例#1
0
        public async Task AddingSuccessfullyReviewShouldReturnTrue()
        {
            var user = new ApplicationUser()
            {
                Email = "*****@*****.**"
            };

            await this.UsersRepository.AddAsync(user);

            var doctor = new Doctor()
            {
                Name   = "Test",
                User   = user,
                UserId = user.Id,
            };

            await this.DoctorsService.CreateDoctorAsync(user.Id, doctor);

            var model = new AddReviewInputModel()
            {
                DoctorId             = doctor.Id,
                DoctorAttitudeReview = 3,
                OverallReview        = 3,
                WaitingTimeReview    = 3,
                ReviewText           = "Test",
            };
            var isAdded = await this.DoctorsService.AddReview(model);

            Assert.True(isAdded);
        }
示例#2
0
        public async Task <ReviewViewModel> AddAsync(AddReviewInputModel inputModel)
        {
            var review = new Review
            {
                ApplicationUserId = inputModel.ApplicationUserId,
                MovieId           = inputModel.MovieId,
                Title             = inputModel.Title,
                Content           = inputModel.Content,
                Stars             = inputModel.Stars,
            };

            await this.reviewsRepository.AddAsync(review);

            await this.reviewsRepository.SaveChangesAsync();

            var viewModel = new ReviewViewModel
            {
                Id        = review.Id,
                Title     = review.Title,
                Content   = review.Content,
                Stars     = review.Stars,
                CreatedOn = review.CreatedOn,
            };

            return(viewModel);
        }
示例#3
0
        public async Task CreateAsync(AddReviewInputModel model, string imagePath, string userId)
        {
            var review = new Review()
            {
                Title       = model.Title,
                Description = model.Description,
                VideoUrl    = model.VideoUrl,
            };

            Directory.CreateDirectory($"{imagePath}/reviews/");

            foreach (var image in model.Images)
            {
                var extension = Path.GetExtension(image.FileName).TrimStart('.');

                var img = new Image()
                {
                    AddedByUserId = userId,
                    Extension     = extension,
                };

                review.Images.Add(img);

                var path = $"{imagePath}/reviews/{img.Id}.{extension}";
                using Stream fileStream = new FileStream(path, FileMode.Create);
                await image.CopyToAsync(fileStream);
            }

            await this.reviewsRepository.AddAsync(review);

            await this.reviewsRepository.SaveChangesAsync();
        }
示例#4
0
        public async Task GetAllByMovieIdShouldWorkCorrectly()
        {
            var context    = new ApplicationDbContext(this.options.Options);
            var repository = new EfDeletableEntityRepository <Review>(context);
            var service    = this.GetReviewsService(repository);

            var diffReview = new AddReviewInputModel
            {
                ApplicationUserId = "me",
                MovieId           = 2,
                Title             = "title",
                Content           = "content",
                Stars             = 3,
            };

            await service.AddAsync(diffReview);

            await service.AddAsync(this.review);

            await service.AddAsync(this.review);

            var result = service.GetAllByMovieId <TestReviewViewModel>(1);

            Assert.Equal(2, result.Count());
        }
示例#5
0
        public async Task <ReviewViewModel> EditAsync(AddReviewInputModel inputModel)
        {
            var review = await this.reviewsRepository.GetByIdWithDeletedAsync(inputModel.Id);

            if (review == null)
            {
                throw new ArgumentNullException(InvalidIdExceptionMessage);
            }

            review.Title   = inputModel.Title;
            review.Content = inputModel.Content;

            this.reviewsRepository.Update(review);
            await this.reviewsRepository.SaveChangesAsync();

            var viewModel = new ReviewViewModel
            {
                Id        = review.Id,
                Title     = review.Title,
                Content   = review.Content,
                CreatedOn = review.CreatedOn,
                Stars     = review.Stars,
            };

            return(viewModel);
        }
示例#6
0
        public async Task <ActionResult <ReviewViewModel> > Edit(AddReviewInputModel inputModel)
        {
            var user = await this.userManager.GetUserAsync(this.User);

            var viewModel = await this.reviewsService.EditAsync(inputModel);

            viewModel.ApplicationUserUserName = user.UserName;
            return(viewModel);
        }
示例#7
0
        public async Task <IActionResult> Add(AddReviewInputModel model)
        {
            var userId = this.User.FindFirst(ClaimTypes.NameIdentifier).Value;

            model.UserId = userId;
            await this.reviewService.AddAsync(model);

            return(this.RedirectToAction("Details", "Games", new { id = model.GameId, success = "true" }));
        }
        public async Task <IActionResult> Add(string dessertId, string orderId)
        {
            var model = new AddReviewInputModel()
            {
                Dessert = await this.dessertsService.GetDetailsAsync <DessertAddReviewViewModel>(dessertId),
                OrderId = orderId,
            };

            return(this.View(model));
        }
示例#9
0
        public IActionResult AddReview(string doctorId, string consultationId)
        {
            var viewModel = new AddReviewInputModel()
            {
                ConsultationId = consultationId,
                DoctorId       = doctorId,
                DoctorName     = this.doctorsService.GetDoctorNameById(doctorId),
            };

            return(this.View(viewModel));
        }
示例#10
0
        public async Task <IActionResult> AddReview(AddReviewInputModel model)
        {
            if (this.doctorsService.AddReview(model).Result)
            {
                await this.consultationsService.MakeConsultationReviewedToTrue(model.ConsultationId);

                return(this.RedirectToAction(nameof(this.Info), new { id = model.DoctorId }));
            }

            return(this.View(model));
        }
示例#11
0
        public async Task <IActionResult> Create(AddReviewInputModel inputModel)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(inputModel));
            }

            var userId    = this.User.FindFirst(ClaimTypes.NameIdentifier).Value;
            var imagePath = this.environment.WebRootPath;

            await this.reviewService.CreateAsync(inputModel, imagePath, userId);

            return(this.RedirectToAction("Index"));
        }
示例#12
0
        public ReviewsServiceTests()
        {
            this.review = new AddReviewInputModel
            {
                ApplicationUserId = "userId",
                MovieId           = 1,
                Title             = "Cool!",
                Content           = "Nice!",
                Stars             = 4,
            };

            AutoMapperConfig.RegisterMappings(typeof(TestReviewViewModel).Assembly);
            this.options = new DbContextOptionsBuilder <ApplicationDbContext>()
                           .UseInMemoryDatabase(Guid.NewGuid().ToString());
        }
        public async Task <IActionResult> Add(AddReviewInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                input.Dessert = await this.dessertsService.GetDetailsAsync <DessertAddReviewViewModel>(input.Dessert.Id);

                return(this.View(input));
            }

            var userId = this.userManager.GetUserId(this.User);

            await this.reviewsService.AddAsync(input.Content, input.Points, input.OrderId, input.Dessert.Id, userId);

            this.TempData["InfoMessage"] = GlobalConstants.SuccessAddedMessage;

            return(this.Redirect($"/Orders/GetOrderDetails/{input.OrderId}"));
        }
示例#14
0
        public async Task <IActionResult> Add(AddReviewInputModel model)
        {
            if (!ModelState.IsValid)
            {
                return(this.BadRequest("Invalid input data."));
            }

            await this.reviewService
            .Create(model.Title,
                    model.Description,
                    model.AuthorId,
                    model.Author,
                    model.BookId,
                    model.BookName);

            return(Ok());
        }
示例#15
0
        public async Task <bool> AddReview(AddReviewInputModel model)
        {
            var doctor = this.GetDoctorById(model.DoctorId);

            var review = new Review()
            {
                DoctorAttitudeReview = model.DoctorAttitudeReview,
                OverallReview        = model.OverallReview,
                WaitingTimeReview    = model.WaitingTimeReview,
                ReviewText           = model.ReviewText,
            };

            doctor.Reviews.Add(review);
            await this.doctorsRepository.SaveChangesAsync();

            return(true);
        }
        public async Task AddReview(AddReviewInputModel inputModel)
        {
            var curretnUser = await this.db.Users.FirstOrDefaultAsync(x => x.UserName == inputModel.Username);

            var review = new ProductReview
            {
                ApplicationUserId = curretnUser?.Id,
                Email             = inputModel.Email,
                PhoneNumber       = inputModel.PhoneNumber,
                ProductId         = inputModel.ProductId,
                CreatedOn         = DateTime.UtcNow,
                UserFullName      = inputModel.FullName,
                Content           = inputModel.SanitizedContent,
                Stars             = inputModel.Stars,
            };

            await this.db.ProductReviews.AddAsync(review);

            await this.db.SaveChangesAsync();
        }
示例#17
0
        public async Task EditReviewShouldWorkCorrectly()
        {
            var context    = new ApplicationDbContext(this.options.Options);
            var repository = new EfDeletableEntityRepository <Review>(context);
            var service    = this.GetReviewsService(repository);

            var diffReview = new AddReviewInputModel
            {
                Id      = 1,
                Title   = "title",
                Content = "content",
            };

            var added = await service.AddAsync(this.review);

            var result = await service.EditAsync(diffReview);

            Assert.Equal("title", result.Title);
            Assert.Equal("content", result.Content);
        }
        public async Task AddAsync(AddReviewInputModel model)
        {
            var review = await this.reviewRepository.All()
                         .FirstOrDefaultAsync(x => x.GameId == model.GameId && x.UserId == model.UserId);

            if (review == null)
            {
                var ratingId = this.ratingRepository.AllAsNoTracking()
                               .FirstOrDefault(x => x.GameId == model.GameId && x.UserId == model.UserId).Id;

                review = new Review
                {
                    GameId   = model.GameId,
                    UserId   = model.UserId,
                    RatingId = ratingId,
                };

                await this.reviewRepository.AddAsync(review);
            }

            review.Text = model.Text;
            await this.reviewRepository.SaveChangesAsync();
        }
示例#19
0
        public async Task GetAllByMovieIdShouldReturnEmptyListWithInvalidMovieId()
        {
            var context    = new ApplicationDbContext(this.options.Options);
            var repository = new EfDeletableEntityRepository <Review>(context);
            var service    = this.GetReviewsService(repository);

            var diffReview = new AddReviewInputModel
            {
                ApplicationUserId = "me",
                MovieId           = 2,
                Title             = "title",
                Content           = "content",
                Stars             = 3,
            };

            await service.AddAsync(diffReview);

            await service.AddAsync(this.review);

            var result = service.GetAllByMovieId <TestReviewViewModel>(3);

            Assert.Empty(result);
        }
示例#20
0
        // GET: Administration/Reviews/Create

        public IActionResult Create()
        {
            var inputModel = new AddReviewInputModel();

            return(this.View(inputModel));
        }