Ejemplo n.º 1
0
        public bool DeleteList(int listId)
        {
            List list = new List();

            if (listId > 0)
            {
                using (var scope = new TransactionScope())
                {
                    var cachedList = ApplicationCache <ListDescriptionTO> .GetCacheItem(d => d.Id == listId);

                    if (cachedList != null)
                    {
                        ApplicationCache <ListDescriptionTO> .RemoveCacheItem(cachedList);
                    }

                    var cachedRating = ApplicationCache <ListFilmRating> .GetCacheItem(d => d.ListId == listId);

                    if (cachedRating != null)
                    {
                        ApplicationCache <ListFilmRating> .RemoveCacheItem(cachedRating);
                    }

                    bool result = _listRepository.Delete(listId);
                    if (result == true)
                    {
                        scope.Complete();
                        return(true);
                    }
                }
            }
            return(false);
        }
Ejemplo n.º 2
0
        public bool ChangeEmail(ChangeEmailTO emailDetails)
        {
            using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                var result = _authRepository.ChangeEmail(emailDetails.OldEmail, emailDetails.NewEmail);

                if (result)
                {
                    scope.Complete();
                    var cacheItem = ApplicationCache <UserInfoTO> .GetCacheItem(d => d.Email == emailDetails.OldEmail);

                    if (cacheItem != null)
                    {
                        var newCacheItem = new UserInfoTO()
                        {
                            Id       = cacheItem.Id,
                            Email    = emailDetails.NewEmail,
                            UserName = cacheItem.UserName,
                            Roles    = cacheItem.Roles
                        };

                        ApplicationCache <UserInfoTO> .RemoveCacheItem(cacheItem);

                        ApplicationCache <UserInfoTO> .AddCacheItem(newCacheItem);
                    }

                    return(true);
                }

                return(false);
            }
        }
Ejemplo n.º 3
0
        public UserInfoTO GetUserInfo(string userName)
        {
            var cacheItem = ApplicationCache <UserInfoTO> .GetCacheItem(d => d.UserName == userName);

            if (cacheItem != null)
            {
                return(cacheItem);
            }

            var user = _authRepository.FindUserByUserName(userName);

            if (user != null)
            {
                var userRoles = _authRepository.GetUserRoles(user.UserName);

                UserInfoTO userInfo = new UserInfoTO
                {
                    Id       = user.Id,
                    UserName = user.UserName,
                    Email    = user.Email,
                    Roles    = userRoles
                };

                ApplicationCache <UserInfoTO> .AddCacheItem(userInfo);

                return(userInfo);
            }
            return(null);
        }
Ejemplo n.º 4
0
        public FilmEntityTO GetFilmById(int filmId)
        {
            var film = new Film();

            var cacheItem = ApplicationCache <Film> .GetCacheItem(d => d.Id == filmId);

            if (cacheItem != null)
            {
                film = cacheItem;
            }
            else
            {
                film = _filmRepository.GetSingleFilm(filmId);
            }

            if (film.Id != 0)
            {
                var actors    = _filmRepository.GetFilmActors(filmId);
                var directors = _filmRepository.GetFilmDirectors(filmId);

                film.Actors    = actors;
                film.Directors = directors;

                Mapper.CreateMap <Actor, ActorEntityTO>();
                Mapper.CreateMap <Director, DirectorEntityTO>();
                Mapper.CreateMap <Film, FilmEntityTO>();

                var filmModel = Mapper.Map <Film, FilmEntityTO>(film);
                return(filmModel);
            }
            return(null);
        }
Ejemplo n.º 5
0
        public bool RemoveUserFavourite(int listId, string userName)
        {
            bool status = _authRepository.RemoveUserFavourite(listId, userName);

            if (status == true)
            {
                var cache = ApplicationCache <UserFavouriteListIdsTO> .GetCache();

                if (cache.Count > 0)
                {
                    var cacheItem = ApplicationCache <UserFavouriteListIdsTO> .GetCacheItem(d => d.UserName == userName);

                    if (cacheItem != null)
                    {
                        int cacheItemIndex = cache.FindIndex(d => d.UserName == userName);
                        cacheItem.ListIds.Remove(listId);
                        cache[cacheItemIndex] = cacheItem;
                        ApplicationCache <UserFavouriteListIdsTO> .FillCache(cache);
                    }
                }

                return(true);
            }
            return(false);
        }
Ejemplo n.º 6
0
        public List <ListFavouriteTO> GetUserFavourites(string userName)
        {
            var listIds = new List <int>();

            var cacheItem = ApplicationCache <UserFavouriteListIdsTO> .GetCacheItem(d => d.UserName == userName);

            if (cacheItem != null)
            {
                listIds = cacheItem.ListIds;
            }
            else
            {
                listIds = _authRepository.GetUserFavourites(userName);
                ApplicationCache <UserFavouriteListIdsTO> .AddCacheItem(new UserFavouriteListIdsTO()
                {
                    UserName = userName,
                    ListIds  = listIds
                });
            }

            List <ListFavouriteTO> listsModel = new List <ListFavouriteTO>();

            if (listIds.Count > 0)
            {
                var lists = _listRepository.GetMany(listIds);

                if (lists != null)
                {
                    Mapper.CreateMap <List, ListFavouriteTO>();
                    listsModel = Mapper.Map <List <List>, List <ListFavouriteTO> >(lists);
                }
            }

            return(listsModel);
        }
Ejemplo n.º 7
0
        public bool CheckIfEmailExists(string email)
        {
            var cacheItem = ApplicationCache <UserInfoTO> .GetCacheItem(d => d.Email == email);

            if (cacheItem != null)
            {
                return(true);
            }
            return(_authRepository.CheckIfEmailExists(email));
        }
Ejemplo n.º 8
0
        public ListDescriptionTO GetListById(string userName, int listId)
        {
            ListDescriptionTO result = new ListDescriptionTO();

            var cacheItem = ApplicationCache <ListDescriptionTO> .GetCacheItem(d => d.Id == listId);

            if (cacheItem != null)
            {
                result = cacheItem;
            }
            else
            {
                result = getListDetails(userName, listId);
            }

            if (userName != "")
            {
                string userId = "";
                //get user id
                userId = _authRepository.GetUserId(userName);

                List <int> votedFilmsIds = new List <int>();
                if (userId != "")
                {
                    //check if user already voted for films
                    votedFilmsIds = _listRepository.CheckIfFilmsAreVoted(result.Id, userId);
                    // check if user already liked/dislikes list
                    result.Voted = _listRepository.CheckIfListIsVoted(result.Id, userId);
                    // check if user already added list to favourites
                    result.IsFavourite = _authRepository.CheckIfFavouriteExists(result.Id, userId);

                    foreach (var film in result.Films)
                    {
                        if (votedFilmsIds.Contains(film.Id))
                        {
                            film.isVoted = true;
                        }
                        else
                        {
                            film.isVoted = false;
                        }
                    }
                }
            }
            else
            {
                foreach (var film in result.Films)
                {
                    film.isVoted = false;
                }
                result.Voted = 0;
            }

            return(result);
        }
Ejemplo n.º 9
0
        public bool CheckIfFilmExists(int filmId)
        {
            var cacheItem = ApplicationCache <Film> .GetCacheItem(d => d.Id == filmId);

            if (cacheItem != null)
            {
                return(true);
            }

            return(_filmRepository.CheckIfFilmExists(filmId));
        }
Ejemplo n.º 10
0
        public string GetUserEmail(string userName)
        {
            var cacheItem = ApplicationCache <UserInfoTO> .GetCacheItem(d => d.UserName == userName);

            if (cacheItem != null)
            {
                return(cacheItem.Email);
            }

            return(_authRepository.GetUserEmail(userName));
        }
Ejemplo n.º 11
0
        public async Task <bool> CheckIfUserExists(string userName)
        {
            var cacheItem = ApplicationCache <UserInfoTO> .GetCacheItem(d => d.UserName == userName);

            if (cacheItem != null)
            {
                return(true);
            }

            var result = await _authRepository.CheckIfUserExists(userName);

            return((result) ? true : false);
        }
Ejemplo n.º 12
0
        public bool CheckIfListFilmRatingExists(int listId, int filmId, string userId)
        {
            var cacheItem = ApplicationCache <ListFilmRating> .GetCacheItem(d => d.ListId == listId && d.FilmId == filmId && d.UserId == userId);

            if (cacheItem != null)
            {
                return(true);
            }
            else
            {
                return(checkIfListFilmRatingExists(listId, filmId, userId));
            }
        }
Ejemplo n.º 13
0
        public string GetListCreator(int listId)
        {
            string result = "";

            var cacheItem = ApplicationCache <ListDescriptionTO> .GetCacheItem(d => d.Id == listId);

            if (cacheItem != null)
            {
                result = cacheItem.User.UserName;
            }
            else
            {
                result = _listRepository.GetListCreator(listId);
            }

            return(result);
        }
Ejemplo n.º 14
0
        public bool DeleteUser(string userName)
        {
            var result = _authRepository.DeleteUser(userName);

            if (result)
            {
                var cacheItem = ApplicationCache <UserInfoTO> .GetCacheItem(d => d.UserName == userName);

                if (cacheItem != null)
                {
                    ApplicationCache <UserInfoTO> .RemoveCacheItem(cacheItem);
                }
                return(true);
            }

            return(false);
        }
Ejemplo n.º 15
0
        public bool AddListToFavourites(string userName, int listId)
        {
            using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                if (userName != "")
                {
                    var result = _authRepository.AddListToFavourites(userName, listId);

                    if (result)
                    {
                        scope.Complete();

                        var cache = ApplicationCache <UserFavouriteListIdsTO> .GetCache();

                        if (cache != null)
                        {
                            var cacheItem = ApplicationCache <UserFavouriteListIdsTO> .GetCacheItem(d => d.UserName == userName);

                            if (cacheItem != null)
                            {
                                var cacheItemIndex = cache.FindIndex(d => d.UserName == userName);
                                cacheItem.ListIds.Add(listId);
                                cache[cacheItemIndex] = cacheItem;
                                ApplicationCache <UserFavouriteListIdsTO> .FillCache(cache);
                            }
                            else
                            {
                                var newUserFavs = new UserFavouriteListIdsTO()
                                {
                                    UserName = userName,
                                    ListIds  = new List <int>()
                                };
                                newUserFavs.ListIds.Add(listId);

                                ApplicationCache <UserFavouriteListIdsTO> .AddCacheItem(newUserFavs);
                            }
                        }

                        return(true);
                    }

                    return(false);
                }
                return(false);
            }
        }
Ejemplo n.º 16
0
        public RatingShortDescriptionTO GetRating(int listId, string userName)
        {
            var result = new RatingShortDescriptionTO();

            var cacheItem = ApplicationCache <Rating> .GetCacheItem(d => d.Id == listId && d.User.UserName == userName);

            if (cacheItem != null)
            {
                Mapper.CreateMap <Rating, RatingShortDescriptionTO>();

                result = Mapper.Map <Rating, RatingShortDescriptionTO>(cacheItem);
            }
            else
            {
                result = getRating(listId, userName);
            }

            return(result);
        }
Ejemplo n.º 17
0
        public bool CheckIfListExists(int listId)
        {
            var cacheItem = ApplicationCache <ListDescriptionTO> .GetCacheItem(d => d.Id == listId);

            if (cacheItem != null)
            {
                return(true);
            }
            else
            {
                var list = _listRepository.GetSingle(listId);

                if (list != null)
                {
                    return(true);
                }
            }

            return(false);
        }
Ejemplo n.º 18
0
        public bool CheckIfFavouriteExists(int listId, string userName)
        {
            var cacheItem = ApplicationCache <UserFavouriteListIdsTO> .GetCacheItem(d => d.UserName == userName);

            if (cacheItem != null)
            {
                bool listExists = cacheItem.ListIds.Contains(listId);
                if (listExists == true)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            var userId = _authRepository.GetUserId(userName);

            return(_authRepository.CheckIfFavouriteExists(listId, userId));
        }
Ejemplo n.º 19
0
        public bool UpdateFilm(int filmId, FilmEntityTO filmEntity)
        {
            var success = false;

            // check post message if is not empty
            if (filmEntity != null)
            {
                using (var scope = new TransactionScope())
                {
                    // check if given film exists in database
                    // zmienic na metode getbyId....
                    var film = _filmRepository.GetSingleFilm(filmId);

                    if (film != null)
                    {
                        if ((film.Name != filmEntity.Name) && filmEntity.Name != null)
                        {
                            film.Name = filmEntity.Name;
                        }
                        if ((film.OriginalName != filmEntity.OriginalName) && filmEntity.OriginalName != null)
                        {
                            film.OriginalName = filmEntity.OriginalName;
                        }
                        if ((film.ReleaseDate != filmEntity.ReleaseDate) && filmEntity.ReleaseDate != null)
                        {
                            film.ReleaseDate = filmEntity.ReleaseDate;
                        }
                        if ((film.Genre != filmEntity.Genre) && filmEntity.Genre != null)
                        {
                            film.Genre = filmEntity.Genre;
                        }
                        if ((film.Description != filmEntity.Description) && filmEntity.Description != null)
                        {
                            film.Description = filmEntity.Description;
                        }
                        if ((film.Cover != filmEntity.Cover) && filmEntity.Cover != null)
                        {
                            film.Cover = filmEntity.Cover;
                        }
                        if ((film.FilmwebUrl != filmEntity.FilmwebUrl) && filmEntity.FilmwebUrl != null)
                        {
                            film.FilmwebUrl = filmEntity.FilmwebUrl;
                        }

                        _filmRepository.UpdateFilm(film);
                        scope.Complete();
                        success = true;
                    }

                    // update cache
                    var cache = ApplicationCache <Film> .GetCache();

                    if (cache.Count() > 0)
                    {
                        var cacheItem = ApplicationCache <Film> .GetCacheItem(d => d.Id == filmId);

                        if (cacheItem != null)
                        {
                            int cacheItemIndex = cache.FindIndex(d => d.Id == filmId);

                            #region update properties
                            if ((film.Name != filmEntity.Name) && filmEntity.Name != null)
                            {
                                cacheItem.Name = filmEntity.Name;
                            }
                            if ((film.OriginalName != filmEntity.OriginalName) && filmEntity.OriginalName != null)
                            {
                                cacheItem.OriginalName = filmEntity.OriginalName;
                            }
                            if ((film.ReleaseDate != filmEntity.ReleaseDate) && filmEntity.ReleaseDate != null)
                            {
                                cacheItem.ReleaseDate = filmEntity.ReleaseDate;
                            }
                            if ((film.Genre != filmEntity.Genre) && filmEntity.Genre != null)
                            {
                                cacheItem.Genre = filmEntity.Genre;
                            }
                            if ((film.Description != filmEntity.Description) && filmEntity.Description != null)
                            {
                                cacheItem.Description = filmEntity.Description;
                            }
                            if ((film.Cover != filmEntity.Cover) && filmEntity.Cover != null)
                            {
                                cacheItem.Cover = filmEntity.Cover;
                            }
                            if ((film.FilmwebUrl != filmEntity.FilmwebUrl) && filmEntity.FilmwebUrl != null)
                            {
                                cacheItem.FilmwebUrl = filmEntity.FilmwebUrl;
                            }
                            #endregion

                            cache[cacheItemIndex] = cacheItem;
                            ApplicationCache <Film> .FillCache(cache);
                        }
                    }
                }
            }
            return(success);
        }