Exemplo n.º 1
0
        public async Task <ServiceResult> Create(User user, Movie movie, ReviewBindingModel model)
        {
            var result = new ServiceResult();

            var review = new Review
            {
                Movie       = movie,
                MovieId     = movie.Id,
                User        = user,
                UserId      = user.Id,
                DateCreated = DateTime.Now
            };

            Mapper.Map(model, review);

            try
            {
                await this.db.Reviews.AddAsync(review);

                await this.db.SaveChangesAsync();

                result.Succeeded = true;
            }
            catch (DbUpdateException ex)
            {
                result.Succeeded = false;
                result.Error     = ex.Message;
            }

            return(result);
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Update(string id, [FromBody] ReviewBindingModel model)
        {
            if (ModelState.IsValid)
            {
                var movie  = this._movieService.GetMovieById(model.movieId);
                var review = this._reviewService.GetReviewById(id);

                if (movie == null || review == null)
                {
                    return(NotFound());
                }

                var user = await this._userManager.FindByNameAsync(User.Identity.Name);

                if (review.UserId != user.Id)
                {
                    return(BadRequest());
                }

                var result = await this._reviewService.Update(review, model);

                if (result.Succeeded)
                {
                    return(Ok());
                }
            }

            return(BadRequest());
        }
Exemplo n.º 3
0
        private ReviewBindingModel DummyDataReviewModel()
        {
            var reviewModel = new ReviewBindingModel
            {
                Content = "Review ContentReview ContentReview ContentReview ContentReview Content",
                Stars   = 5,
            };

            return(reviewModel);
        }
        public async Task <bool> AddReview(ReviewBindingModel productModel)
        {
            var review = AutoMapper.Mapper.Map <Review>(productModel);

            await this.context.Reviews.AddAsync(review);

            var result = await this.context.SaveChangesAsync();

            return(result > 0);
        }
        public async Task <ActionResult> PostReview(ReviewBindingModel reviewBindingModel)
        {
            var review = _mapper.Map <Review>(reviewBindingModel);

            review.Date = DateTime.Now;

            _repositoryWrapper.ReviewRepository.Create(review);
            _repositoryWrapper.Save();

            return(Ok());
        }
Exemplo n.º 6
0
        public async Task <IActionResult> AddReview(ReviewBindingModel reviewBindingModel, int id)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.RedirectToAction(nameof(this.Details), new { id }));
            }

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

            await this.reviewService.AddAsync <ReviewBindingModel>(reviewBindingModel, id, userId);

            return(this.RedirectToAction(nameof(this.Details), new { id }));
        }
Exemplo n.º 7
0
        public async Task <ActionResult <Review> > PostReview([FromForm] ReviewBindingModel reviewBindingModel)
        {
            try
            {
                var review = _mapper.Map <Review>(reviewBindingModel);
                _context.Reviews.Add(review);
                await _context.SaveChangesAsync();

                return(CreatedAtAction(nameof(GetReviews), new { id = review.ReviewId }, review));
            }
            catch (Exception ex)
            {
            }

            return(BadRequest());
        }
Exemplo n.º 8
0
        public ReviewBindingModel GetReviewBindingModelWithCourseId(int courseId, string userId)
        {
            var isValid     = this.db.Courses.Any(x => x.Id == courseId && x.InstructorId == userId);
            var existReview = this.db.Reviews.Any(x => x.CourseId == courseId);

            if (!isValid || existReview)
            {
                return(null);
            }
            var model = new ReviewBindingModel
            {
                CourseId = courseId
            };

            return(model);
        }
Exemplo n.º 9
0
        public IHttpActionResult SubmitStoreReview(ReviewBindingModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                using (DunkeyContext ctx = new DunkeyContext())
                {
                    if (ctx.StoreRatings.Any(x => x.User_Id == model.User_Id && x.Store_Id == model.Store_Id))
                    {
                        return(Content(HttpStatusCode.OK, new CustomResponse <Error>
                        {
                            Message = "Forbidden",
                            StatusCode = (int)HttpStatusCode.Forbidden,
                            Result = new Error {
                                ErrorMessage = "User already reviews this store."
                            }
                        }));
                    }
                    else
                    {
                        var storeRating = new StoreRatings {
                            User_Id = model.User_Id, Rating = model.Rating, Store_Id = model.Store_Id, Feedback = model.Feedback
                        };
                        ctx.StoreRatings.Add(storeRating);
                        ctx.SaveChanges();
                        var latestStoreRating = ctx.StoreRatings.Include(z => z.User).FirstOrDefault(x => x.Id == storeRating.Id);
                        CustomResponse <StoreRatings> response = new CustomResponse <StoreRatings>
                        {
                            Message    = Global.SuccessMessage,
                            StatusCode = (int)HttpStatusCode.OK,
                            Result     = storeRating
                        };

                        return(Ok(response));
                    }
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
Exemplo n.º 10
0
        public async Task <ServiceResult> Update(Review review, ReviewBindingModel model)
        {
            var result = new ServiceResult();

            Mapper.Map(model, review);

            try
            {
                await this.db.SaveChangesAsync();

                result.Succeeded = true;
            }
            catch (DbUpdateException ex)
            {
                result.Succeeded = false;
                result.Error     = ex.Message;
            }

            return(result);
        }
Exemplo n.º 11
0
        public async Task <ReviewViewModel> Update(long id, ReviewBindingModel review)
        {
            using (var ctx = new CMMIContext())
            {
                var entity = await ctx.Reviews.FindAsync(id);

                if (entity == null)
                {
                    throw new NotFoundException("Review not found.");
                }

                entity.Rating  = review.Rating;
                entity.Comment = review.Comment;

                await ctx.SaveChangesAsync();

                await UpdateRestaurantReviewDetails(ctx, entity.Restaurant);

                return(new ReviewViewModel(entity));
            }
        }
Exemplo n.º 12
0
        public async Task <ReviewViewModel> Create(long restaurantId, ReviewBindingModel review)
        {
            using (var ctx = new CMMIContext())
            {
                var entity = ctx.Reviews.Create();

                entity.UserGuid = CurrentUserGuid;

                entity.RestaurantId = restaurantId;
                entity.Rating       = review.Rating;
                entity.Comment      = review.Comment;

                entity.CreateDate = DateTime.Now;

                ctx.Reviews.Add(entity);
                await ctx.SaveChangesAsync();

                await UpdateRestaurantReviewDetails(ctx, entity.Restaurant);

                return(new ReviewViewModel(entity));
            }
        }
        public ActionResult Add(int id, ReviewBindingModel reviewModel)
        {
            var game = this.Data.Games.Find(id);

            if (game == null)
            {
                return(this.HttpNotFound("The requested game was not found in the system."));
            }

            var currentUser = this.Data.Users.Find(this.User.Identity.GetUserId());
            var review      = new Review()
            {
                Content = reviewModel.Content, Game = game, Author = currentUser, CreationTime = DateTime.Now
            };

            game.Reviews.Add(review);
            this.Data.SaveChanges();

            var model = Mapper.Map <ConciseReviewViewModel>(review);

            return(this.PartialView("_Review", model));
        }
Exemplo n.º 14
0
        public ActionResult Add(int id, ReviewBindingModel reviewModel)
        {
            var motorcycle = this.Data.Motorcycles.Find(id);


            var currentUser = this.Data.Users.Find(this.User.Identity.GetUserId());
            var review      = new Review()
            {
                Content = reviewModel.Content, Motorcycle = motorcycle, Author = currentUser, CreationTime = DateTime.Now
            };

            motorcycle.Reviews.Add(review);
            this.Data.SaveChanges();

            var vm = this.service.GetConciseReviewViewModel(review);

            if (vm == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }
            Response.StatusCode = 200;
            return(this.PartialView("_Review", vm));
        }
Exemplo n.º 15
0
        public async Task <IActionResult> Create([FromBody] ReviewBindingModel model)
        {
            if (ModelState.IsValid)
            {
                var movie = this._movieService.GetMovieById(model.movieId);

                if (movie == null)
                {
                    return(NotFound());
                }

                var user = await this._userManager.FindByNameAsync(User.Identity.Name);

                var result = await this._reviewService.Create(user, movie, model);

                if (result.Succeeded)
                {
                    return(CreatedAtRoute("GetUser", model));
                }
            }

            return(BadRequest());
        }
        public async Task AddReview_WithCorrectData_ShouldCreateSuccessfully()
        {
            string onFalseErrorMessage = "The method returned false on valid creation model.";
            string onNullErrorMessage  = "The review was not added to the database.";

            var context = ApplicationDbContextInMemoryFactory.InitializeContext();

            var reviewService = new ReviewService(context);

            ReviewBindingModel model = new ReviewBindingModel
            {
                ClientFullName = "TestClient",
                Comment        = "TestComment",
                Rating         = 5,
            };

            var methodResult = await reviewService.AddReview(model);

            Assert.True(methodResult, onFalseErrorMessage);

            var reviewExists = context.Reviews.FirstOrDefaultAsync(x => x.ClientFullName == model.ClientFullName);

            AssertExtensions.NotNullWithMessage(reviewExists, onNullErrorMessage);
        }
Exemplo n.º 17
0
        public ActionResult Create(ReviewBindingModel review)
        {
            var game = this.Data.Games.Find(review.GamePublicationId);

            if (game == null)
            {
                return(this.HttpNotFound("Game does not exist"));
            }

            var newReview = new Review()
            {
                Content      = review.Content,
                AuthorId     = this.UserProfile.Id,
                CreationTime = DateTime.Now,
                GameId       = game.Id
            };

            this.Data.Reviews.Add(newReview);
            this.Data.SaveChanges();

            var modelReview = Mapper.Map <ReviewModel>(newReview);

            return(this.PartialView("DisplayTemplates/ReviewModel", modelReview));
        }
Exemplo n.º 18
0
        public IHttpActionResult AddReview(ReviewBindingModel reviewModel)
        {
            if (reviewModel == null)
            {
                return(this.BadRequest("Missing review data"));
            }

            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            var currentUserId = this.User.Identity.GetUserId();

            if (!this.EscortServiceData.Customers.Any(c => c.Id == currentUserId))
            {
                return(this.Content(HttpStatusCode.Unauthorized, new
                {
                    Message = "User " + this.User.Identity.GetUserName() + " is not customer"
                }));
            }

            var escortId =
                this.EscortServiceData.Escorts.Where(c => c.UserName == reviewModel.EscortName).Select(c => c.Id).FirstOrDefault();

            if (escortId == null)
            {
                return(this.Content(HttpStatusCode.NotFound, new
                {
                    Message = "Escort  " + reviewModel.EscortName + " does not exist."
                }));
            }

            var lastReview = this.EscortServiceData.Reviews
                             .Where(r => r.AuthorId == currentUserId && r.EscortId == escortId)
                             .OrderByDescending(r => r.Date)
                             .FirstOrDefault();

            if (lastReview != null)
            {
                var dateTiemDiff = (DateTime.Now - lastReview.Date).TotalHours;
                if (dateTiemDiff < 2.0)
                {
                    return(this.BadRequest(String.Format("You have given revie for escort: {0} just before {1:F0} minutes.",
                                                         reviewModel.EscortName, dateTiemDiff * 60 < 1 ? 1 : dateTiemDiff * 60)));
                }
            }

            Review newReview = new Review()
            {
                Content  = reviewModel.Content,
                Date     = DateTime.Now,
                Rating   = reviewModel.Rating,
                AuthorId = currentUserId,
                EscortId = escortId,
            };

            this.EscortServiceData.Reviews.Add(newReview);
            this.EscortServiceData.SaveChanges();

            return
                (this.Ok(String.Format(
                             "Review for escort: {0} created from customer: {1}", reviewModel.EscortName, this.User.Identity.GetUserName())));
        }
        public async Task <IActionResult> AddReview(ReviewBindingModel productModel)
        {
            await this.reviewService.AddReview(productModel);

            return(this.RedirectToAction("Details", new { id = productModel.ProductId }));
        }
        public IHttpActionResult AddReview(ReviewBindingModel reviewModel)
        {
            if (reviewModel == null)
            {
                return this.BadRequest("Missing review data");
            }

            if (!this.ModelState.IsValid)
            {
                return this.BadRequest(this.ModelState);
            }

            var currentUserId = this.User.Identity.GetUserId();

            if (!this.EscortServiceData.Customers.Any(c => c.Id == currentUserId))
            {
                return this.Content(HttpStatusCode.Unauthorized, new
                {
                    Message = "User " + this.User.Identity.GetUserName() + " is not customer"
                });
            }

            var escortId =
                this.EscortServiceData.Escorts.Where(c => c.UserName == reviewModel.EscortName).Select(c => c.Id).FirstOrDefault();

            if (escortId == null)
            {
                return this.Content(HttpStatusCode.NotFound, new
                {
                    Message = "Escort  " + reviewModel.EscortName + " does not exist."
                });
            }

            var lastReview = this.EscortServiceData.Reviews
                .Where(r => r.AuthorId == currentUserId && r.EscortId == escortId)
                .OrderByDescending(r => r.Date)
                .FirstOrDefault();

            if (lastReview != null)
            {
                var dateTiemDiff = (DateTime.Now - lastReview.Date).TotalHours;
                if (dateTiemDiff < 2.0)
                {
                    return this.BadRequest(String.Format("You have given revie for escort: {0} just before {1:F0} minutes.",
                        reviewModel.EscortName, dateTiemDiff * 60 < 1 ? 1 : dateTiemDiff * 60));
                }
            }

            Review newReview = new Review()
            {
                Content = reviewModel.Content,
                Date = DateTime.Now,
                Rating = reviewModel.Rating,
                AuthorId = currentUserId,
                EscortId = escortId,
            };

            this.EscortServiceData.Reviews.Add(newReview);
            this.EscortServiceData.SaveChanges();

            return
                this.Ok(String.Format(
                    "Review for escort: {0} created from customer: {1}", reviewModel.EscortName, this.User.Identity.GetUserName()));
        }
        public ActionResult AddReview(ReviewBindingModel model)
        {
            if (model == null || !this.ModelState.IsValid)
            {
                return this.View("Error");
            }

            var loggedUserId = this.User.Identity.GetUserId();
            var loggedUser = this.Data.Users.Find(loggedUserId);
            var game = this.Data.Games.Find(model.GameId);

            if (game == null)
            {
                return this.View("Error");
            }

            var newReview = new Review
            {
                Author = loggedUser,
                AuthorId = loggedUserId,
                Content = model.Content,
                CreationTime = DateTime.Now,
                GameId= model.GameId,
                Game = game
            };

            this.Data.Reviews.Add(newReview);
            this.Data.SaveChanges();

            return RedirectToAction("Details", "Games", routeValues: new { gameTitle = game.Title });
        }
Exemplo n.º 22
0
        // PUT: api/Reviews/5
        public async Task <IHttpActionResult> Put(ApiId reviewId, [FromBody] ReviewBindingModel review)
        {
            var result = await _reviews.Update(reviewId, review);

            return(Ok(result));
        }
Exemplo n.º 23
0
        // POST: api/Reviews
        public async Task <IHttpActionResult> Post(ApiId restaurantId, [FromBody] ReviewBindingModel review)
        {
            var created = await _reviews.Create(restaurantId, review);

            return(Created("api/reviews/" + created.Id, created));
        }