public ResourceListViewModel AlbumResources(int AlbumID, int PageNumber)
        {
            IResourceRepository repository = new Repository.ResourceRepository();

            try
            {
                string userName = this.User.Identity.Name;

                Album album = repository.GetAlbum(AlbumID, userName);

                ResourceListViewModel resourceVM = new ResourceListViewModel
                {
                    Resources = album.Resources.Skip((PageNumber - 1) * 20).Take(20).ToList(),
                    Total     = album.Resources.Count
                };

                //Clear the album's resources to prevent circular reference converting to json
                album.Resources.Clear();

                return(resourceVM);
            }
            catch (Exception e)
            {
                throw new System.Exception("No such album called " + AlbumID);
            }
        }
        public Album GetAlbum(int id)
        {
            IResourceRepository repository = new Repository.ResourceRepository();

            string userName = this.User.Identity.Name;

            try
            {
                Album album = repository.GetAlbum(id, userName);
                //reset the resources list because it causes circular reference
                album.Resources = new List <ResourceModel.DigitalResource>();

                return(album);
            }
            catch (Exception e)
            {
                throw new System.Exception("No such album called " + id);
            }
        }