Beispiel #1
0
        public void UpdateMovieToAction(int movieId, WebModels.Enums.ActionsViewModel newAction, string userId, int useractionId)
        {
            //var oldActionModel = new UserActionsViewModel
            //{
            //    Action = currentAction
            //};
            //var oldAction = _mapper.Map<UserActions>(oldActionModel);
            //var userAction = _userActionRepository.GetAll().FirstOrDefault(x => x.Action == oldAction.Action && x.UserId == userId);
            var userAction     = _userActionRepository.GetAll().FirstOrDefault(x => x.Id == useractionId);
            var newActionModel = new UserActionsViewModel
            {
                Action = newAction
            };
            var action = _mapper.Map <UserActions>(newActionModel);

            userAction.Action = action.Action;
            //var updateAction = new UserActionMovies
            //{
            //    MovieId = movieId,
            //    UserActionId = useractionId,
            //    Movie = _movieRepository.GetById(movieId),
            //    UserActions = userAction

            //};
            _userActionRepository.Update(userAction);
        }
Beispiel #2
0
        public IEnumerable <UserAction> GetAllActionsWithCondition(UserActionsViewModel userActions)
        {
            if (userActions == null)
            {
                return(_context.UserActions.ToList());
            }


            var timeSpan = new TimeSpan(23, 59, 0);

            userActions.DateTime2 = userActions.DateTime2 + timeSpan;
            var dateTimeForComparison = new DateTime(0002, 01, 01);

            if (userActions.DateTime2 < dateTimeForComparison)
            {
                userActions.DateTime2 = DateTime.Now;
            }


            if (userActions.UserName != null)
            {
                return(_context.UserActions
                       .Where(t => t.DateTime >= userActions.DateTime1)
                       .Where(t => t.DateTime <= userActions.DateTime2)
                       .Where(c => c.UserName == userActions.UserName).ToList());
            }
            else
            {
                return(_context.UserActions
                       .Where(t => t.DateTime >= userActions.DateTime1)
                       .Where(t => t.DateTime <= userActions.DateTime2)
                       .ToList());
            }
        }
Beispiel #3
0
        public UserMovieRatingsTable GetUserMovieRatingsTable()
        {
            var users       = _mapper.Map <IEnumerable <UserViewModel> >(_userRepository.GetAll());
            var usersIdList = new List <string>();

            foreach (var user in users)
            {
                usersIdList.Add(user.Id);
            }
            UserMovieRatingsTable table = new UserMovieRatingsTable();

            table.UserIndexToId = usersIdList;
            var movies       = _mapper.Map <IEnumerable <MovieViewModel> >(_movieRepository.GetAll());
            var moviesIdList = new List <int>();

            foreach (var movie in movies)
            {
                moviesIdList.Add(movie.Id);
            }
            table.MovieIndexToId = moviesIdList;
            foreach (var userId in table.UserIndexToId)
            {
                table.Users.Add(new UserMoviesRatings(userId, table.MovieIndexToId.Count));
            }
            foreach (var user in _userRepository.GetAll())
            {
                var userActions = _userActionRepo.GetAll().Where(x => x.UserId == user.Id);

                foreach (var movie in _movieRepository.GetAll())
                {
                    List <UserActionsViewModel> actionsForMovie = new List <UserActionsViewModel>();

                    foreach (var userAction in userActions)
                    {
                        var userActionsMovie = _userActionMovieRepo.GetAll().Where(x => x.MovieId == movie.Id && x.UserActionId == userAction.Id);
                        foreach (var userActionMovie in userActionsMovie)
                        {
                            UserActionsViewModel userActionsViewModel = new UserActionsViewModel
                            {
                                Action = (ActionsViewModel)userActionMovie.UserActions.Action,
                            };
                            actionsForMovie.Add(userActionsViewModel);
                        }
                    }
                    int userIndex  = table.UserIndexToId.IndexOf(user.Id);
                    int movieIndex = table.MovieIndexToId.IndexOf(movie.Id);
                    table.Users[userIndex].MovieRatings[movieIndex] = Rating(actionsForMovie);
                }
            }
            return(table);
        }
Beispiel #4
0
 public void CreateAction(UserActionsViewModel model)
 {
     _userActionRepository.Insert(_mapper.Map <UserActions>(model));
 }
Beispiel #5
0
        public void CheckActionIfExist(int movieId, string userId)
        {
            var actionMovie = GetActionForMovie(movieId, userId);
            UserActionsViewModel userActions = GetCurrentAction(userId);
            var upVotes   = 0;
            var downVotes = 0;
            var downloads = 0;
            var views     = 0;

            foreach (var action in actionMovie)
            {
                if (action.Action == WebModels.Enums.ActionsViewModel.view)
                {
                    views++;
                }
                else if (action.Action == WebModels.Enums.ActionsViewModel.upVote)
                {
                    upVotes++;
                }
                else if (action.Action == WebModels.Enums.ActionsViewModel.downVote)
                {
                    downVotes++;
                }
                else
                {
                    downloads++;
                }
            }

            if (upVotes == 0 && userActions.Action == WebModels.Enums.ActionsViewModel.upVote && downVotes == 0)
            {
                AddMovieToAction(userActions.Id, movieId, userId);
            }
            else if (downVotes == 0 && userActions.Action == WebModels.Enums.ActionsViewModel.downVote && upVotes == 0)
            {
                AddMovieToAction(userActions.Id, movieId, userId);
            }
            else if (downloads == 0 && userActions.Action == WebModels.Enums.ActionsViewModel.download)
            {
                AddMovieToAction(userActions.Id, movieId, userId);
            }
            else if (views == 0 && userActions.Action == WebModels.Enums.ActionsViewModel.view)
            {
                AddMovieToAction(userActions.Id, movieId, userId);
            }

            if (upVotes >= 1 && userActions.Action == WebModels.Enums.ActionsViewModel.downVote)
            {
                foreach (var action in actionMovie)
                {
                    if (action.Action == WebModels.Enums.ActionsViewModel.upVote)
                    {
                        UpdateMovieToAction(movieId, WebModels.Enums.ActionsViewModel.downVote, userId, action.Id);
                    }
                }
            }
            if (downVotes >= 1 && userActions.Action == WebModels.Enums.ActionsViewModel.upVote)
            {
                foreach (var action in actionMovie)
                {
                    if (action.Action == WebModels.Enums.ActionsViewModel.downVote)
                    {
                        UpdateMovieToAction(movieId, WebModels.Enums.ActionsViewModel.upVote, userId, action.Id);
                    }
                }
            }
        }