示例#1
0
        public Contract_VideoDetailed ToContractDetailed(int userID)
        {
            Contract_VideoDetailed contract = new Contract_VideoDetailed();

            // get the cross ref episode
            List <CrossRef_File_Episode> xrefs = this.EpisodeCrossRefs;

            if (xrefs.Count == 0)
            {
                return(null);
            }

            contract.Percentage     = xrefs[0].Percentage;
            contract.EpisodeOrder   = xrefs[0].EpisodeOrder;
            contract.CrossRefSource = xrefs[0].CrossRefSource;
            contract.AnimeEpisodeID = xrefs[0].EpisodeID;

            contract.VideoLocal_FilePath    = this.FilePath;
            contract.VideoLocal_Hash        = this.Hash;
            contract.VideoLocal_FileSize    = this.FileSize;
            contract.VideoLocalID           = this.VideoLocalID;
            contract.VideoLocal_IsIgnored   = this.IsIgnored;
            contract.VideoLocal_IsVariation = this.IsVariation;

            contract.VideoLocal_MD5        = this.MD5;
            contract.VideoLocal_SHA1       = this.SHA1;
            contract.VideoLocal_CRC32      = this.CRC32;
            contract.VideoLocal_HashSource = this.HashSource;

            VideoLocal_User userRecord = this.GetUserRecord(userID);

            if (userRecord == null)
            {
                contract.VideoLocal_IsWatched = 0;
            }
            else
            {
                contract.VideoLocal_IsWatched = 1;
            }

            // Import Folder
            ImportFolder ns = this.ImportFolder;             // to prevent multiple db calls

            if (ns != null)
            {
                contract.ImportFolderID       = ns.ImportFolderID;
                contract.ImportFolderLocation = ns.ImportFolderLocation;
                contract.ImportFolderName     = ns.ImportFolderName;
            }

            // video info
            VideoInfo vi = this.VideoInfo;             // to prevent multiple db calls

            if (vi != null)
            {
                contract.VideoInfo_AudioBitrate    = vi.AudioBitrate;
                contract.VideoInfo_AudioCodec      = vi.AudioCodec;
                contract.VideoInfo_Duration        = vi.Duration;
                contract.VideoInfo_VideoBitrate    = vi.VideoBitrate;
                contract.VideoInfo_VideoBitDepth   = vi.VideoBitDepth;
                contract.VideoInfo_VideoCodec      = vi.VideoCodec;
                contract.VideoInfo_VideoFrameRate  = vi.VideoFrameRate;
                contract.VideoInfo_VideoResolution = vi.VideoResolution;
                contract.VideoInfo_VideoInfoID     = vi.VideoInfoID;
            }

            // AniDB File
            AniDB_File anifile = this.GetAniDBFile();             // to prevent multiple db calls

            if (anifile != null)
            {
                contract.AniDB_Anime_GroupName      = anifile.Anime_GroupName;
                contract.AniDB_Anime_GroupNameShort = anifile.Anime_GroupNameShort;
                contract.AniDB_AnimeID              = anifile.AnimeID;
                contract.AniDB_CRC                  = anifile.CRC;
                contract.AniDB_Episode_Rating       = anifile.Episode_Rating;
                contract.AniDB_Episode_Votes        = anifile.Episode_Votes;
                contract.AniDB_File_AudioCodec      = anifile.File_AudioCodec;
                contract.AniDB_File_Description     = anifile.File_Description;
                contract.AniDB_File_FileExtension   = anifile.File_FileExtension;
                contract.AniDB_File_LengthSeconds   = anifile.File_LengthSeconds;
                contract.AniDB_File_ReleaseDate     = anifile.File_ReleaseDate;
                contract.AniDB_File_Source          = anifile.File_Source;
                contract.AniDB_File_VideoCodec      = anifile.File_VideoCodec;
                contract.AniDB_File_VideoResolution = anifile.File_VideoResolution;
                contract.AniDB_FileID               = anifile.FileID;
                contract.AniDB_GroupID              = anifile.GroupID;
                contract.AniDB_MD5                  = anifile.MD5;
                contract.AniDB_SHA1                 = anifile.SHA1;
                contract.AniDB_File_FileVersion     = anifile.FileVersion;

                // languages
                contract.LanguagesAudio    = anifile.LanguagesRAW;
                contract.LanguagesSubtitle = anifile.SubtitlesRAW;
            }
            else
            {
                contract.AniDB_Anime_GroupName      = "";
                contract.AniDB_Anime_GroupNameShort = "";
                contract.AniDB_CRC                  = "";
                contract.AniDB_File_AudioCodec      = "";
                contract.AniDB_File_Description     = "";
                contract.AniDB_File_FileExtension   = "";
                contract.AniDB_File_Source          = "";
                contract.AniDB_File_VideoCodec      = "";
                contract.AniDB_File_VideoResolution = "";
                contract.AniDB_MD5                  = "";
                contract.AniDB_SHA1                 = "";
                contract.AniDB_File_FileVersion     = 1;

                // languages
                contract.LanguagesAudio    = "";
                contract.LanguagesSubtitle = "";
            }



            AniDB_ReleaseGroup relGroup = this.ReleaseGroup;             // to prevent multiple db calls

            if (relGroup != null)
            {
                contract.ReleaseGroup = relGroup.ToContract();
            }
            else
            {
                contract.ReleaseGroup = null;
            }

            return(contract);
        }
示例#2
0
        public List <Contract_VideoDetailed> GetVideoDetailedContracts(int userID)
        {
            VideoLocalRepository          repVids   = new VideoLocalRepository();
            List <Contract_VideoDetailed> contracts = new List <Contract_VideoDetailed>();

            // get all the cross refs
            foreach (CrossRef_File_Episode xref in FileCrossRefs)
            {
                Contract_VideoDetailed contract = new Contract_VideoDetailed();
                contract.Percentage     = xref.Percentage;
                contract.EpisodeOrder   = xref.EpisodeOrder;
                contract.CrossRefSource = xref.CrossRefSource;
                contract.AnimeEpisodeID = this.AnimeEpisodeID;

                // get the video file
                // we will assume that it is unique by hash/episodeid
                VideoLocal vid = repVids.GetByHash(xref.Hash);
                if (vid != null)
                {
                    contract.VideoLocal_FilePath = vid.FilePath;
                    contract.VideoLocal_Hash     = vid.Hash;
                    contract.VideoLocal_FileSize = vid.FileSize;
                    contract.VideoLocalID        = vid.VideoLocalID;

                    contract.VideoLocal_MD5        = vid.MD5;
                    contract.VideoLocal_SHA1       = vid.SHA1;
                    contract.VideoLocal_CRC32      = vid.CRC32;
                    contract.VideoLocal_HashSource = vid.HashSource;

                    VideoLocal_User vidUser = vid.GetUserRecord(userID);
                    //AnimeEpisode_User userRecord = this.GetUserRecord(userID);
                    if (vidUser == null)
                    {
                        contract.VideoLocal_IsWatched   = 0;
                        contract.VideoLocal_WatchedDate = null;
                    }
                    else
                    {
                        contract.VideoLocal_IsWatched   = 1;
                        contract.VideoLocal_WatchedDate = vidUser.WatchedDate;
                    }
                    contract.VideoLocal_IsIgnored   = vid.IsIgnored;
                    contract.VideoLocal_IsVariation = vid.IsVariation;

                    // Import Folder
                    ImportFolder ns = vid.ImportFolder;                     // to prevent multiple db calls
                    contract.ImportFolderID       = ns.ImportFolderID;
                    contract.ImportFolderLocation = ns.ImportFolderLocation;
                    contract.ImportFolderName     = ns.ImportFolderName;

                    // video info
                    VideoInfo vi = vid.VideoInfo;                     // to prevent multiple db calls
                    contract.VideoInfo_AudioBitrate    = vi.AudioBitrate;
                    contract.VideoInfo_AudioCodec      = vi.AudioCodec;
                    contract.VideoInfo_Duration        = vi.Duration;
                    contract.VideoInfo_VideoBitrate    = vi.VideoBitrate;
                    contract.VideoInfo_VideoBitDepth   = vi.VideoBitDepth;
                    contract.VideoInfo_VideoCodec      = vi.VideoCodec;
                    contract.VideoInfo_VideoFrameRate  = vi.VideoFrameRate;
                    contract.VideoInfo_VideoResolution = vi.VideoResolution;
                    contract.VideoInfo_VideoInfoID     = vi.VideoInfoID;

                    // AniDB File
                    AniDB_File anifile = vid.GetAniDBFile();                     // to prevent multiple db calls
                    if (anifile != null)
                    {
                        contract.AniDB_Anime_GroupName      = anifile.Anime_GroupName;
                        contract.AniDB_Anime_GroupNameShort = anifile.Anime_GroupNameShort;
                        contract.AniDB_AnimeID              = anifile.AnimeID;
                        contract.AniDB_CRC                  = anifile.CRC;
                        contract.AniDB_Episode_Rating       = anifile.Episode_Rating;
                        contract.AniDB_Episode_Votes        = anifile.Episode_Votes;
                        contract.AniDB_File_AudioCodec      = anifile.File_AudioCodec;
                        contract.AniDB_File_Description     = anifile.File_Description;
                        contract.AniDB_File_FileExtension   = anifile.File_FileExtension;
                        contract.AniDB_File_LengthSeconds   = anifile.File_LengthSeconds;
                        contract.AniDB_File_ReleaseDate     = anifile.File_ReleaseDate;
                        contract.AniDB_File_Source          = anifile.File_Source;
                        contract.AniDB_File_VideoCodec      = anifile.File_VideoCodec;
                        contract.AniDB_File_VideoResolution = anifile.File_VideoResolution;
                        contract.AniDB_FileID               = anifile.FileID;
                        contract.AniDB_GroupID              = anifile.GroupID;
                        contract.AniDB_MD5                  = anifile.MD5;
                        contract.AniDB_SHA1                 = anifile.SHA1;
                        contract.AniDB_File_FileVersion     = anifile.FileVersion;
                        contract.AniDB_File_IsCensored      = anifile.IsCensored;
                        contract.AniDB_File_IsDeprecated    = anifile.IsDeprecated;
                        contract.AniDB_File_InternalVersion = anifile.InternalVersion;

                        // languages
                        contract.LanguagesAudio    = anifile.LanguagesRAW;
                        contract.LanguagesSubtitle = anifile.SubtitlesRAW;
                    }
                    else
                    {
                        contract.AniDB_Anime_GroupName      = "";
                        contract.AniDB_Anime_GroupNameShort = "";
                        contract.AniDB_CRC                  = "";
                        contract.AniDB_File_AudioCodec      = "";
                        contract.AniDB_File_Description     = "";
                        contract.AniDB_File_FileExtension   = "";
                        contract.AniDB_File_Source          = "";
                        contract.AniDB_File_VideoCodec      = "";
                        contract.AniDB_File_VideoResolution = "";
                        contract.AniDB_MD5                  = "";
                        contract.AniDB_SHA1                 = "";
                        contract.AniDB_File_FileVersion     = 1;

                        // languages
                        contract.LanguagesAudio    = "";
                        contract.LanguagesSubtitle = "";
                    }



                    AniDB_ReleaseGroup relGroup = vid.ReleaseGroup;                     // to prevent multiple db calls
                    if (relGroup != null)
                    {
                        contract.ReleaseGroup = relGroup.ToContract();
                    }
                    else
                    {
                        contract.ReleaseGroup = null;
                    }

                    contracts.Add(contract);
                }
            }


            return(contracts);
        }