Exemple #1
0
        public JsonResult CreateCopyByShareCode(string shareCodeShortId, string urlFriendlyEntityTitle, Guid folderId)
        {
            ShareCode shareCode = ShareCodeDao.GetByShortIdAndEntityTitle(shareCodeShortId, urlFriendlyEntityTitle);

            if (shareCode == null)
            {
                throw new ApplicationException("Unable to locate shareCode in database.");
            }

            if (shareCode.EntityType != ShareableEntityType.Playlist)
            {
                throw new ApplicationException("Expected shareCode to have entityType of Playlist");
            }

            //  Never return the sharecode's playlist reference. Make a copy of it to give out so people can't modify the original.
            Playlist playlistToCopy = PlaylistDao.Get(shareCode.EntityId);

            Folder folder = FolderDao.Get(folderId);

            var playlistCopy = new Playlist(playlistToCopy);

            folder.AddPlaylist(playlistCopy);

            PlaylistManager.Save(playlistCopy);

            PlaylistDto playlistDto = PlaylistDto.Create(playlistCopy);

            return(new JsonDataContractActionResult(playlistDto));
        }
Exemple #2
0
        /// <summary>
        ///     Initialize the AutoMapper mappings for the solution.
        ///     http://automapper.codeplex.com/
        /// </summary>
        public static void CreateAutoMapperMaps()
        {
            AutofacRegistrations.RegisterDaoFactory();
            ILifetimeScope scope      = AutofacRegistrations.Container.BeginLifetimeScope();
            var            daoFactory = scope.Resolve <IDaoFactory>();

            Mapper.CreateMap <Error, ErrorDto>()
            .ReverseMap();

            IPlaylistItemDao playlistItemDao = daoFactory.GetPlaylistItemDao();
            IPlaylistDao     playlistDao     = daoFactory.GetPlaylistDao();
            IFolderDao       folderDao       = daoFactory.GetFolderDao();
            IUserDao         userDao         = daoFactory.GetUserDao();

            Mapper.CreateMap <Playlist, PlaylistDto>()
            .ReverseMap()
            .ForMember(playlist => playlist.FirstItem,
                       opt => opt.MapFrom(playlistDto => playlistItemDao.Get(playlistDto.FirstItemId)))
            .ForMember(playlist => playlist.NextPlaylist,
                       opt => opt.MapFrom(playlistDto => playlistDao.Get(playlistDto.NextPlaylistId)))
            .ForMember(playlist => playlist.PreviousPlaylist,
                       opt => opt.MapFrom(playlistDto => playlistDao.Get(playlistDto.PreviousPlaylistId)))
            .ForMember(playlist => playlist.Folder,
                       opt => opt.MapFrom(playlistDto => folderDao.Get(playlistDto.FolderId)));

            Mapper.CreateMap <PlaylistItem, PlaylistItemDto>()
            .ReverseMap()
            .ForMember(playlistItem => playlistItem.NextItem,
                       opt => opt.MapFrom(playlistItemDto => playlistItemDao.Get(playlistItemDto.NextItemId)))
            .ForMember(playlistItem => playlistItem.PreviousItem,
                       opt => opt.MapFrom(playlistItemDto => playlistItemDao.Get(playlistItemDto.PreviousItemId)))
            .ForMember(playlistItem => playlistItem.Playlist,
                       opt => opt.MapFrom(playlistItemDto => playlistDao.Get(playlistItemDto.PlaylistId)));

            Mapper.CreateMap <ShareCode, ShareCodeDto>().ReverseMap();

            Mapper.CreateMap <Folder, FolderDto>()
            .ReverseMap()
            .ForMember(folder => folder.FirstPlaylist,
                       opt => opt.MapFrom(folderDto => playlistDao.Get(folderDto.FirstPlaylistId)))
            .ForMember(folder => folder.User,
                       opt => opt.MapFrom(folderDto => userDao.Get(folderDto.UserId)));

            Mapper.CreateMap <User, UserDto>().ReverseMap();
            Mapper.CreateMap <Video, VideoDto>().ReverseMap();

            Mapper.AssertConfigurationIsValid();
        }