public bool AddUser(User newUser)
 {
     try
     {
         using (var db = new MovieReviewContext())
         {
             var exisitingUser = db.User.FirstOrDefault(u => u.Email == newUser.Email || u.UserName == newUser.UserName);
             if (exisitingUser == null)
             {
                 var user = new UserDTO();
                 user.UserId   = Guid.NewGuid();
                 user.Email    = newUser.Email;
                 user.UserName = newUser.UserName;
                 db.User.Add(user);
                 db.SaveChanges();
                 return(true);
             }
             else
             {
                 return(false);
             }
         }
     } catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
        public IList <ReviewDTO> GetTopMovies(DateTime date, double range)
        {
            using (var db = new MovieReviewContext())
            {
                date = date.AddDays(-range);
                IList <ReviewDTO> topMovies = new List <ReviewDTO>();
                var reviews = db.Review.Where(r => r.Date.Date >= date.Date).GroupBy(r => r.MovieId).ToList();

                foreach (var group in reviews)
                {
                    ReviewDTO rdto     = new ReviewDTO();
                    double    scoreSum = 0;
                    foreach (var review in group)
                    {
                        scoreSum    += review.Score;
                        rdto.MovieId = review.MovieId;
                    }
                    rdto.Score = scoreSum / group.Count();
                    topMovies.Add(rdto);
                }


                return(topMovies);
            }
        }
        public IList <ReviewDTO> GetReviewsbByDateRange(int range)
        {
            var reviews = new List <ReviewDTO>();
            var date    = DateTime.Now.AddDays(-range);

            using (var db = new MovieReviewContext())
            {
                var reviewsSearch = db.Review.Where(r => r.Date >= date).OrderByDescending(r => r.Date);

                foreach (Review review in reviewsSearch)
                {
                    var reviewDTO = new ReviewDTO();

                    reviewDTO.Comment  = review.Comment;
                    reviewDTO.Score    = review.Score;
                    reviewDTO.UserName = db.User.Where(u => u.UserId == review.UserId).FirstOrDefault().UserName;
                    reviewDTO.MovieId  = review.MovieId;
                    reviewDTO.Date     = review.Date;
                    reviewDTO.ReviewId = review.ReviewId;

                    reviews.Add(reviewDTO);
                }

                return(reviews);
            }
        }
 public ActorValidator(MovieReviewContext context)
 {
     RuleFor(x => x.FirstName)
     .NotEmpty()
     .WithMessage("First name is required");
     RuleFor(x => x.LastName)
     .NotEmpty()
     .WithMessage("Last name is required");
 }
Exemple #5
0
 public MovieValidator(MovieReviewContext context)
 {
     RuleFor(x => x.Title)
     .NotEmpty()
     .WithMessage("Title is required");
     RuleFor(x => x.Duration)
     .GreaterThan(0)
     .WithMessage("Duration must be longer than 0 minutes");
     RuleFor(x => x.Year)
     .GreaterThan(1887)
     .WithMessage("First movie was filmed in 1888, not before that");
 }
 public UserDTO GetUser(string username)
 {
     try
     {
         using (var db = new MovieReviewContext())
         {
             return(db.User.FirstOrDefault(u => u.UserName == username));
         }
     } catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
 public ReviewValidator(MovieReviewContext context)
 {
     RuleFor(x => x.Title)
     .NotEmpty()
     .WithMessage("Title is required");
     RuleFor(x => x.Text)
     .NotEmpty()
     .MaximumLength(300)
     .WithMessage("Please use up to 300 characters");
     RuleFor(x => x.MovieRating)
     .InclusiveBetween(1, 5)
     .WithMessage("Rate between 1 and 5");
     RuleFor(x => x.MovieId)
     .Must(x => context.Movies.Any(m => m.Id == x))
     .WithMessage("No such movie in the database");
 }
 public bool AddReview(Review review)
 {
     try
     {
         using (var db = new MovieReviewContext())
         {
             review.ReviewId = Guid.NewGuid();
             review.Date     = DateTime.Now;
             db.Review.Add((review));
             db.SaveChanges();
             return(true);
         }
     } catch
     {
         return(false);
     }
 }
        public bool DeleteReview(Guid reviewId)
        {
            try
            {
                using (var db = new MovieReviewContext())
                {
                    Review deleteReview = db.Review.Where(r => r.ReviewId == reviewId).FirstOrDefault();
                    db.Review.Remove(deleteReview);
                    db.SaveChanges();

                    return(true);
                }
            }
            catch
            {
                return(false);
            }
        }
 public UpdateUserValidator(MovieReviewContext context)
 {
     RuleFor(x => x.FirstName)
     .NotEmpty();
     RuleFor(x => x.LastName)
     .NotEmpty();
     RuleFor(x => x.Username)
     .NotEmpty()
     .MinimumLength(4)
     .Must((dto, username) => !context.Users.Any(user => user.Username == username && user.Id != dto.Id))
     .WithMessage("Username is already taken.");
     RuleFor(x => x.Email)
     .NotEmpty()
     .EmailAddress()
     .Must((dto, email) => !context.Users.Any(user => user.Email == email && user.Id != dto.Id))
     .WithMessage("This email is already taken.");
     RuleFor(x => x.Password)
     .NotEmpty()
     .MinimumLength(8);
 }
        public double GetMovieScore(int movieId)
        {
            using (var db = new MovieReviewContext())
            {
                var    reviewSearch = db.Review.Where(r => r.MovieId == movieId);
                double score        = 0;

                foreach (Review review in reviewSearch)
                {
                    score += review.Score;
                }

                if (reviewSearch.Count() == 0)
                {
                    return(-1);
                }
                else
                {
                    score /= reviewSearch.Count();
                    return(score);
                }
            }
        }
Exemple #12
0
 public AddUserValidator(MovieReviewContext context)
 {
     RuleFor(x => x.FirstName)
     .NotEmpty()
     .WithMessage("First name is required");
     RuleFor(x => x.LastName)
     .NotEmpty()
     .WithMessage("Last name is required");
     RuleFor(x => x.Username)
     .NotEmpty()
     .WithMessage("Username is required")
     .MinimumLength(4)
     .WithMessage("Username must be at least 4 characters long")
     .Must(x => !context.Users.Any(user => user.Username == x))
     .WithMessage("Username is already taken.");
     RuleFor(x => x.Email)
     .NotEmpty()
     .EmailAddress()
     .Must(x => !context.Users.Any(user => user.Email == x))
     .WithMessage("This email is already taken.");
     RuleFor(x => x.Password)
     .NotEmpty()
     .MinimumLength(8);
 }
        public IList <ReviewDTO> GetReviews(int movieId)
        {
            var reviews = new List <ReviewDTO>();

            using (var db = new MovieReviewContext())
            {
                var reviewsSearch = db.Review.Where(r => r.MovieId == movieId).OrderBy(r => r.Date);

                foreach (Review review in reviewsSearch)
                {
                    var reviewDTO = new ReviewDTO();

                    reviewDTO.Comment  = review.Comment;
                    reviewDTO.Score    = review.Score;
                    reviewDTO.UserName = db.User.Where(u => u.UserId == review.UserId).FirstOrDefault().UserName;
                    reviewDTO.Date     = review.Date;
                    reviewDTO.ReviewId = review.ReviewId;

                    reviews.Add(reviewDTO);
                }

                return(reviews);
            }
        }
 public TestController(MovieReviewContext context)
 {
     this.context = context;
 }
Exemple #15
0
 public EfAddActor(MovieReviewContext context, IMapper mapper, ActorValidator validator)
 {
     this.context   = context;
     this.mapper    = mapper;
     this.validator = validator;
 }
 public EfDeleteReview(MovieReviewContext context)
 {
     this.context = context;
 }
 public EfGetUsersQuery(MovieReviewContext context, IMapper mapper)
 {
     _context    = context;
     this.mapper = mapper;
 }
 public EfUpdateUser(MovieReviewContext context, IMapper mapper, UpdateUserValidator validator)
 {
     this.context   = context;
     this.mapper    = mapper;
     this.validator = validator;
 }
 public EfGetOneMovieQuery(MovieReviewContext context, IMapper mapper)
 {
     this.context = context;
     this.mapper  = mapper;
 }
Exemple #20
0
 public JwtManager(MovieReviewContext context, TokenValidator validator)
 {
     _context   = context;
     _validator = validator;
 }
Exemple #21
0
 public EfAddGenre(MovieReviewContext context, IMapper mapper, GenreValidator validator)
 {
     this.context   = context;
     this.mapper    = mapper;
     this.validator = validator;
 }
 public GenreValidator(MovieReviewContext context)
 {
     RuleFor(x => x.Name)
     .NotEmpty()
     .WithMessage("Genre name is required");
 }