Example #1
0
        /// <summary>
        /// 자막 리스트를 일괄 등록한다.
        /// </summary>
        /// <param name="mediaInfoList">미디어정보 리스트</param>
        /// <returns>DB 처리 결과</returns>
        //public SQLiteResult InsertSubtitles(MediaInfo mediaInfo)
        //{
        //    if (mediaInfo.SubtitleFileList != null)
        //    {
        //        return Transactional(() =>
        //        {
        //            SQLiteResult result = SQLiteResult.EMPTY;

        //            using (var custstmt = this.conn.Prepare(DML_INSERT_SUBTITLE))
        //            {
        //                foreach (var subtitle in mediaInfo.SubtitleFileList)
        //                {
        //                    custstmt.Bind("@PATH", subtitle.Path);
        //                    custstmt.Bind("@OWNER_SEQ", mediaInfo.Path);
        //                    custstmt.Bind("@FAL_TOKEN", subtitle.FalToken);
        //                    result = custstmt.Step();

        //                    if (result != SQLitePCL.SQLiteResult.DONE)
        //                    {
        //                        return result;
        //                    }

        //                    // Resets the statement, to that it can be used again (with different parameters).
        //                    custstmt.Reset();
        //                    custstmt.ClearBindings();
        //                }
        //            }

        //            return result;
        //        });
        //    }
        //    else
        //    {
        //        return SQLiteResult.DONE;
        //    }
        //}

        /// <summary>
        /// 모든 자막 목록을 삭제한다.
        /// </summary>
        /// <returns>DB 처리 결과</returns>
        //public SQLiteResult DeleteSubtitle(SubtitleInfo sif)
        //{
        //    //모든 자막 FAL 삭제 (특별한 경우를 제외하고는 수행되지 않음 - 상위 폴더가 FAL에 등록되어 있으면 하위 파일은 접근 권한을 갖기 때문)
        //    foreach (var entry in StorageApplicationPermissions.FutureAccessList.Entries)
        //    {
        //        if (entry.Metadata == typeof(SubtitleInfo).ToString())
        //        {
        //            StorageApplicationPermissions.FutureAccessList.Remove(entry.Token);
        //        }
        //    }

        //    using (var pstmt = conn.Prepare(DML_DELETE_SUBTITLE))
        //    {
        //        pstmt.Bind("@OWNER_SEQ", sif.Path) ;
        //        return pstmt.Step();
        //    }
        //}

        /// <summary>
        /// 재생목록 로우 펫치
        /// </summary>
        /// <param name="stmt"></param>
        /// <returns></returns>
        private MediaInfo GetRowDataForPlayList(ISQLiteStatement stmt)
        {
            var mi = new MediaInfo()
            {
                Path        = stmt.GetText("PATH"),
                Name        = stmt.GetText("NAME"),
                FalToken    = stmt.GetText2("FAL_TOKEN"),
                RunningTime = stmt.GetInteger2("RUNNING_TIME"),
                PausedTime  = stmt.GetInteger2("PAUSED_TIME"),
            };
            //재생목록에 추가된 시간 파싱
            DateTime AddedDateTime;

            if (DateTime.TryParse(stmt.GetText2("ADDED_DATETIME"), out AddedDateTime))
            {
                mi.AddedDateTime = AddedDateTime;
            }
            return(mi);
        }
Example #2
0
 /// <summary>
 /// 조회된 한 로우에 대한 데이터를 생성한다.
 /// </summary>
 /// <param name="stmt">DB 구문 객체</param>
 /// <returns>파일 정보</returns>
 private FolderInfo GetRowData(ISQLiteStatement stmt)
 {
     return(new FolderInfo()
     {
         Type = (FolderType)stmt.GetInteger("FOLDER_TYPE"),
         Level = stmt.GetInteger2("LEVEL"),
         Name = stmt.GetText("NAME"),
         Path = stmt.GetText("PATH"),
         FalToken = stmt.GetText2("FAL_TOKEN"),
         Passcode = stmt.GetText2("PASSCODE")
     });
 }