Example #1
0
        public override async System.Threading.Tasks.Task Init()
        {
            await base.Init();

            if (DataInfos.Count <= 0)
            {
                var sina = new SocialDataInfo()
                {
                    Type = SocialType.SINA, IsBinded = false
                };
                var tencent = new SocialDataInfo()
                {
                    Type = SocialType.TENCENT, IsBinded = false
                };
                var renren = new SocialDataInfo()
                {
                    Type = SocialType.RENREN, IsBinded = false
                };

                DataInfos.Add(sina);
                DataInfos.Add(tencent);
                DataInfos.Add(renren);

                SubmitChange();
            }
        }
Example #2
0
        /// <summary>
        /// 批量插入云端数据,并更新云端
        /// </summary>
        /// <param name="clouds"></param>
        public async void InsertCloudRecords(List <CloudDataInfo> clouds)
        {
            var removeCount = clouds.Count - MaxCount;

            if (removeCount > 0)
            {
                for (var i = 0; i < removeCount; i++)
                {
                    _postFactory.AddDeleteInfo(clouds[i]);
                }
                clouds = clouds.Skip(removeCount).ToList();
            }
            _updateImageCount = await Task.Run(() => { return(clouds.Count(v => DataInfos.IndexOf(v) == -1)); });

            var allCount = clouds.Count;

            for (var i = allCount - 1; i >= 0; i--)
            {
                InsertCloudRecord(clouds[i]);
            }
            PostChange();
            SubmitChange();

            if (LocalChangeAction != null)
            {
                LocalChangeAction();
            }
        }
Example #3
0
        /// <summary>
        /// 插入一条记录
        /// </summary>
        /// <param name="record"></param>
        public virtual async void InsertRecord(M record)
        {
            await CheckData();

            DataInfos.Add(record);
            SubmitChange();
        }
Example #4
0
        private void Wrap_Drop(object sender, DragEventArgs e)
        {
            Array dropObject = (System.Array)e.Data.GetData(DataFormats.FileDrop);

            if (dropObject == null)
            {
                return;
            }
            string path = (string)dropObject.GetValue(0);

            if (File.Exists(path))
            {
                // 文件
                BitmapImage bi    = FileIcon.GetBitmapImage(path);
                DataInfos   infos = new DataInfos();
                infos.Path        = path;
                infos.BitmapImage = bi;
                infos.Name        = Path.GetFileNameWithoutExtension(path);
                data.Items.Add(infos);
                data.Items.Refresh();
            }
            else if (Directory.Exists(path))
            {
                //文件夹
            }
        }
Example #5
0
        /// <summary>
        /// 删除一条记录
        /// </summary>
        /// <param name="record"></param>
        public virtual async void DeleteRecord(M record)
        {
            await CheckData();

            DataInfos.Remove(record);
            SubmitChange();
        }
Example #6
0
        // Handles the Drop event for both ListViews.
        void OnListViewDrop(object sender, DragEventArgs e)
        {
            if (e.Effects == DragDropEffects.None)
            {
                return;
            }
            ViewModel.Menu menuV = e.Data.GetData(typeof(ViewModel.Menu)) as ViewModel.Menu;
            DataInfos      data  = e.Data.GetData(typeof(DataInfos)) as DataInfos;

            if (sender == this.menu)
            {
                if (this.dragMgr.IsDragInProgress)
                {
                    return;
                }

                // An item was dragged from the bottom ListView into the top ListView
                // so remove that item from the bottom ListView.
                (this.data.ItemsSource as ObservableCollection <DataInfos>).Remove(data);
            }
            else
            {
                if (this.dragMgr2.IsDragInProgress)
                {
                    return;
                }

                // An item was dragged from the top ListView into the bottom ListView
                // so remove that item from the top ListView.
                (this.menu.ItemsSource as ObservableCollection <ViewModel.Menu>).Remove(menuV);
            }
        }
Example #7
0
        /// <summary>
        /// 清空所有记录
        /// </summary>
        public virtual async void RemoveAll()
        {
            await CheckData();

            DataInfos.PerformanceClear();
            SubmitChange();
        }
Example #8
0
 public override void InsertRecord(PersonalInfo record)
 {
     DataInfos.PerformanceClear();
     base.InsertRecord(record);
     if (LoginChangeAction != null)
     {
         LoginChangeAction(true);
     }
 }
        public void RemoveEntity(int channelId)
        {
            var item = DataInfos.FirstOrDefault(watch => watch.VID == channelId);

            if (item != null)
            {
                RemoveEntity(item);
            }
        }
Example #10
0
        /// <summary>
        /// 根据频道ID删除一个追剧
        /// </summary>
        /// <param name="chanelId"></param>
        public void RemoveByChannelId(int channelId)
        {
            var pursuitInfo = DataInfos.FirstOrDefault(p => p.ChannelId == channelId);

            if (pursuitInfo != null)
            {
                RemoveEntity(pursuitInfo);
            }
        }
Example #11
0
        /// <summary>
        /// 更新指定频道的集数
        /// </summary>
        /// <param name="channelId"></param>
        /// <param name="count"></param>
        public void UpdateCountByChannelId(int channelId, int count)
        {
            var pursuitInfo = DataInfos.FirstOrDefault(p => p.ChannelId == channelId);

            if (pursuitInfo != null)
            {
                pursuitInfo.ChannelCount = count;
                SubmitDatabase();
            }
        }
Example #12
0
        /// <summary>
        /// 根据频道ID删除一个追剧,但不保存至CE数据库
        /// </summary>
        /// <param name="channelId"></param>
        public void RemoveNotSave(int channelId)
        {
            var pursuitInfo = DataInfos.FirstOrDefault(p => p.ChannelId == channelId);

            if (pursuitInfo != null)
            {
                DataInfos.Remove(pursuitInfo);
                DataContext.PursuitTable.DeleteOnSubmit(pursuitInfo);
            }
        }
Example #13
0
        /// <summary>
        /// 更新频道缩略图与评分信息
        /// </summary>
        /// <param name="record"></param>
        private void UpdateImageUri(CloudDataInfo record)
        {
            var vid = record.SubId == 0 ? record.Id : record.SubId;
            var uri = string.Format("{0}detail.api?ver=2&auth={1}&platform={2}&vid={3}", EpgUtils.VodHost, EpgUtils.Auth, EpgUtils.PlatformName, vid);

            HttpAsyncUtils.HttpGet(uri, null, null, response =>
            {
                try
                {
                    using (var reader = XmlReader.Create(new StringReader(response)))
                    {
                        if (reader.ReadToFollowing("imgurl"))
                        {
                            record.ImageUri = reader.ReadElementContentAsString();
                        }
                        if (reader.ReadToFollowing("mark"))
                        {
                            record.Mark = reader.ReadElementContentAsDouble();
                        }
                    }
                    lock (_lock)
                    {
                        _updateImageList.Add(record);
                        if (_updateImageList.Count >= _updateImageCount)
                        {
                            var list = _updateImageList.OrderByDescending(v => v.ModifyTime);
                            _dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                            {
                                try
                                {
                                    foreach (var v in list)
                                    {
                                        if (DataInfos.Count >= MaxCount)
                                        {
                                            _postFactory.AddDeleteInfo(v);
                                        }
                                        else
                                        {
                                            DataInfos.Add(v);
                                        }
                                    }
                                    SubmitChange();
                                    if (LocalChangeAction != null)
                                    {
                                        LocalChangeAction();
                                    }
                                }
                                catch { }
                            });
                        }
                    }
                }
                catch { }
            });
        }
        /// <summary>
        /// 新增一条搜索历史记录,如果存在则更新
        /// </summary>
        /// <param name="entity"></param>
        public override void AddEntity(DBHistorySearchInfo entity)
        {
            var item = DataInfos.FirstOrDefault(o => o.Key == entity.Key);

            if (item != null)
            {
                DataInfos.Remove(item);
                _table.DeleteOnSubmit(item);
            }
            _table.InsertOnSubmit(entity);
            DataInfos.Insert(0, entity);
            SubmitDatabase();
        }
        /// <summary>
        /// 新增一条记录
        /// </summary>
        /// <param name="entity"></param>
        public override void AddEntity(DBWatchHistoryChanneInfo entity)
        {
            var item = DataInfos.FirstOrDefault(watch => watch.VID == entity.VID);

            if (item != null)
            {
                DataInfos.Remove(item);
                _table.DeleteOnSubmit(item);
            }
            DataInfos.Insert(0, entity);
            _table.InsertOnSubmit(entity);
            SubmitDatabase();
        }
Example #16
0
        /// <summary>
        /// 根据ID删除一条记录,并POST到云端
        /// </summary>
        /// <param name="vid"></param>
        /// <returns></returns>
        public void DeleteRecord(int vid)
        {
            var local = DataInfos.FirstOrDefault(v => v.Id == vid);

            if (local != null)
            {
                local.DataType = CloudInfoEnum.Delete;
                _postFactory.AddDeleteInfo(local);
                PostChange();
                base.DeleteRecord(local);

                if (LocalChangeAction != null)
                {
                    LocalChangeAction();
                }
            }
        }
Example #17
0
        /// <summary>
        /// 插入一条本地数据,如果存在则更新
        /// </summary>
        /// <param name="record"></param>
        /// <returns></returns>
        public void InsertLocalRecord(CloudDataInfo record)
        {
            record.Device     = Device;
            record.ModifyTime = DateTime.Now.Subtract(DateTime.Parse("1601,1,1")).Ticks + CloudFactoryBase.TimeInterval;

            var index = DataInfos.IndexOf(record);

            if (index != -1)
            {
                var local = DataInfos[index];
                record.UUID = local.UUID;
                UpdateDeviceHistory(local);
                record.DeviceHistory = local.DeviceHistory;
                local          = record;
                local.DataType = CloudInfoEnum.Update;
                DataInfos.RemoveAt(index);
                DataInfos.Insert(0, local);
            }
            else
            {
                record.UUID = Guid.NewGuid().ToString();
                if (DataInfos.Count >= MaxCount)
                {
                    var removeIndex = DataInfos.Count - 1;
                    var removeInfo  = DataInfos[removeIndex];
                    removeInfo.DataType = CloudInfoEnum.Delete;
                    _postFactory.AddDeleteInfo(removeInfo);
                    DataInfos.RemoveAt(removeIndex);
                }
                record.DataType = CloudInfoEnum.Add;
                UpdateDeviceHistory(record);
                DataInfos.Insert(0, record);
            }
            PostChange();
            SubmitChange();

            if (LocalChangeAction != null)
            {
                LocalChangeAction();
            }
        }
Example #18
0
    // Use this for initialization
    void Start()
    {
        instance = this;
        users    = new UserInfos();
        datas    = new DataInfos();
        //读取数据,并将数据放到userinfo列表中,方便后边的查询,存储
        string json1 = FileCtrl.instance.ReadFileTxt(FileType.USERINFO);

        if (json1.Length > 0)
        {
            users = JsonUtility.FromJson <UserInfos>(json1);//对文本中的json数据进行反序列化
            Debug.Log(json1 + ",userInfoList count=" + users.userInfoList.Count);
        }
        string json2 = FileCtrl.instance.ReadFileTxt(FileType.DataInfo);

        if (json2.Length > 0)
        {
            datas = JsonUtility.FromJson <DataInfos>(json2);//对文本中的json数据进行反序列化
            Debug.Log(json2 + ",dataInfoList count=" + datas.dataInfoList.Count);
        }
    }
Example #19
0
        /// <summary>
        /// 插入一条云端数据,如果存在则更新
        /// </summary>
        /// <param name="record"></param>
        /// <returns></returns>
        private void InsertCloudRecord(CloudDataInfo record)
        {
            var index = DataInfos.IndexOf(record);

            if (record.Id <= 0)
            {
                if (index == -1)
                {
                    _updateImageCount--;
                }
                record.DataType = CloudInfoEnum.Delete;
                return;
            }

            if (index != -1)
            {
                var local = DataInfos[index];
                if (local.ModifyTime > record.ModifyTime)
                {
                    local.DataType = CloudInfoEnum.Update;
                    UpdateDeviceHistory(record);
                    local.UUID = record.UUID;
                }
                else
                {
                    UpdateProgramIndex(record);
                    record.ImageUri  = local.ImageUri;
                    local            = record;
                    local.DataType   = CloudInfoEnum.Normal;
                    DataInfos[index] = local;
                }
            }
            else
            {
                record.DataType = CloudInfoEnum.Normal;
                UpdateProgramIndex(record);
                UpdateImageUri(record);
            }
        }
Example #20
0
 /// <summary>
 /// 返回指定频道ID的追剧信息
 /// </summary>
 /// <param name="channelId"></param>
 /// <returns></returns>
 public PursuitInfo GetByChannelId(int channelId)
 {
     return(DataInfos.FirstOrDefault(p => p.ChannelId == channelId));
 }
 /// <summary>
 /// 根据频道ID返回观看历史记录
 /// </summary>
 /// <param name="channelId"></param>
 /// <returns></returns>
 public DBWatchHistoryChanneInfo GetEntity(int channelId)
 {
     return(DataInfos.FirstOrDefault(watch => watch.VID == channelId));
 }
Example #22
0
        /// <summary>
        /// 确定是否追了该剧
        /// </summary>
        /// <param name="channelId"></param>
        /// <returns></returns>
        public bool HasByChannelId(int channelId)
        {
            var pursuit = DataInfos.FirstOrDefault(p => p.ChannelId == channelId);

            return(pursuit == null ? false : true);
        }
Example #23
0
 /// <summary>
 /// 根据频道ID返回一条记录,如果不存在则返回null
 /// </summary>
 /// <param name="vid"></param>
 /// <returns></returns>
 public async Task <CloudDataInfo> GetRecord(int vid)
 {
     return(await Task.Run(() => { return DataInfos.FirstOrDefault(v => v.Id == vid); }));
 }
Example #24
0
 public SocialDataInfo GetRecord(SocialType socialType)
 {
     return(DataInfos.FirstOrDefault(v => v.Type == socialType));
 }
Example #25
0
 [DllImport(DLL_Path)] public static extern ErrorCode BL_GetFCTData(int ID, byte channel, [MarshalAs(UnmanagedType.LPArray, SizeConst = 1000)] int[] buf, ref DataInfos pInfos, ref CurrentValues pValues);