コード例 #1
0
ファイル: DatabaseHelper.cs プロジェクト: lyandy/EyeSight_UWP
        public async Task <List <ModelPropertyBase> > QueryCollections(bool isDownloadDatabase = false)
        {
            List <ModelPropertyBase> ln = new List <ModelPropertyBase>();

            var dataModelConnection = isDownloadDatabase ? DicStore.GetValueOrDefault <SQLiteAsyncConnection>(AppCommonConst.EYESIGHT_DOWNLOAD_DATABASE, null) : DicStore.GetValueOrDefault <SQLiteAsyncConnection>(AppCommonConst.EYESIGHT_FAVORITE_DATABASE, null);

            if (dataModelConnection != null)
            {
                var list = await dataModelConnection.QueryAsync <ModelPropertyBase>("select * from VideoInfo");

                foreach (var l in list)
                {
                    var p = await dataModelConnection.QueryAsync <Provider>("select * from Provider where parentId = " + l.id);

                    l.provider = p.FirstOrDefault();

                    var c = await dataModelConnection.QueryAsync <Consumption>("select * from Consumption where parentId = " + l.id);

                    l.consumption = c.FirstOrDefault();

                    var pi = await dataModelConnection.QueryAsync <Playinfo>("select * from Playinfo where parentId = " + l.id);

                    l.playInfo = pi;

                    var tags = await dataModelConnection.QueryAsync <VideoTag>("select * from VideoTag where parentId = " + l.id);

                    l.tags = tags;
                }
                ln = list;
            }
            return(ln);
        }
コード例 #2
0
ファイル: DatabaseHelper.cs プロジェクト: lyandy/EyeSight_UWP
        public async Task <bool> DeleteBySingle(ModelPropertyBase item, bool isDownloadDatabase = false)
        {
            var dataModelConnection = isDownloadDatabase ? DicStore.GetValueOrDefault <SQLiteAsyncConnection>(AppCommonConst.EYESIGHT_DOWNLOAD_DATABASE, null) : DicStore.GetValueOrDefault <SQLiteAsyncConnection>(AppCommonConst.EYESIGHT_FAVORITE_DATABASE, null);

            if (dataModelConnection != null)
            {
                if (item != null)
                {
                    item.playInfo.ForEach(async A =>
                    {
                        await dataModelConnection.DeleteAsync(A);
                    });

                    item.tags.ForEach(async A =>
                    {
                        await dataModelConnection.DeleteAsync(A);
                    });

                    await dataModelConnection.DeleteAsync(item.provider);

                    await dataModelConnection.DeleteAsync(item.consumption);

                    await dataModelConnection.DeleteAsync(item);

                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
コード例 #3
0
ファイル: CommonHelper.cs プロジェクト: lyandy/EyeSight_UWP
        public async Task <string> DecidePlayUrl(ModelPropertyBase model)
        {
            string playUrl = null;

            var mp = GetCurrentPlayerFramework();

            if (mp != null)
            {
                mp.StartupPosition = TimeSpan.Zero;
                mp.StartTime       = TimeSpan.Zero;

                if (model != null)
                {
                    //选出已经缓存的下载的PlayInfoModel
                    var playInfoModel = await FindHasDownloadVideoPlayInfoModel(model);

                    if (AppEnvironment.IsInternetAccess)
                    {
                        //如果有网络,并且此条目已经被下载,则优先加载下载后的资源,这样速度更快
                        if (model.isAleadyDownload && playInfoModel != null)
                        {
                            if (model.playInfo.Count > 1)
                            {
                                DicStore.AddOrUpdateValue <int>(AppCommonConst.CURRENT_VIDEO_SOLUTION_SELECTED_INDEX, model.playInfo.IndexOf(playInfoModel));
                                mp.IsFastForwardEnabled = true;
                            }
                            else
                            {
                                mp.IsFastForwardEnabled = false;
                            }

                            playUrl = playInfoModel.url;
                        }
                        else
                        {
                            if (model.playInfo.Count > 1)
                            {
                                var p = from m in model.playInfo
                                        where m.name == (AppEnvironment.IsWlanOrInternet && SettingsStore.GetValueOrDefault <bool>(AppCommonConst.IS_HIGHQUALITY_TOGGLLESWITCH_ON, true) ? "高清" : "标清")
                                        select m;
                                var playInfo = p.FirstOrDefault() as Playinfo;
                                if (playInfo != null)
                                {
                                    DicStore.AddOrUpdateValue <int>(AppCommonConst.CURRENT_VIDEO_SOLUTION_SELECTED_INDEX, model.playInfo.IndexOf(playInfo));
                                    mp.IsFastForwardEnabled = true;
                                    playUrl = playInfo.url;
                                }
                                else
                                {
                                    mp.IsFastForwardEnabled = false;
                                    playUrl = model.playUrl;
                                }
                            }
                            else
                            {
                                mp.IsFastForwardEnabled = false;
                                playUrl = model.playUrl;
                            }
                        }
                    }
                    else
                    {
                        //没有网络则加载本地缓存的。
                        //这里加载本地的缓存的链接。 并且设为不可切换清晰度
                        mp.IsFastForwardEnabled = false;
                        if (playInfoModel != null)
                        {
                            playUrl = playInfoModel.url;
                        }
                    }
                }
                else
                {
                    mp.IsFastForwardEnabled = false;
                    playUrl = null;
                }
            }
            else
            {
                mp.IsFastForwardEnabled = false;
                playUrl = null;
            }

            return(await PlayUrlConverte(playUrl));
        }
コード例 #4
0
ファイル: DatabaseHelper.cs プロジェクト: lyandy/EyeSight_UWP
        public async Task <bool> InsertBySingle(ModelPropertyBase item, bool isDownloadDatabase = false)
        {
            var dataModelConnection = isDownloadDatabase ? DicStore.GetValueOrDefault <SQLiteAsyncConnection>(AppCommonConst.EYESIGHT_DOWNLOAD_DATABASE, null) : DicStore.GetValueOrDefault <SQLiteAsyncConnection>(AppCommonConst.EYESIGHT_FAVORITE_DATABASE, null);

            if (dataModelConnection != null)
            {
                if (item != null)
                {
                    if (await dataModelConnection.InsertAsync(item) == 0)
                    {
                        await dataModelConnection.UpdateAsync(item);
                    }

                    var provider = item.provider;
                    if (provider != null)
                    {
                        provider.parentId = item.id;

                        if (await dataModelConnection.InsertAsync(item.provider) == 0)
                        {
                            await dataModelConnection.UpdateAsync(item.provider);
                        }
                    }

                    var consumption = item.consumption;
                    if (consumption != null)
                    {
                        consumption.parentId = item.id;

                        if (await dataModelConnection.InsertAsync(item.consumption) == 0)
                        {
                            await dataModelConnection.UpdateAsync(item.consumption);
                        }
                    }

                    var playInfo = item.playInfo;
                    if (playInfo != null)
                    {
                        playInfo.ForEach(A =>
                        {
                            A.parentId = item.id;
                        });

                        if (await dataModelConnection.InsertAllAsync(item.playInfo) == 0)
                        {
                            await dataModelConnection.UpdateAllAsync(item.playInfo);
                        }
                    }

                    var videoTags = item.tags;
                    if (videoTags != null)
                    {
                        videoTags.ForEach(A =>
                        {
                            A.parentId = item.id;
                        });

                        if (await dataModelConnection.InsertAllAsync(item.tags) == 0)
                        {
                            await dataModelConnection.UpdateAllAsync(item.tags);
                        }
                    }

                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }