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(); } }
/// <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(); } }
/// <summary> /// 插入一条记录 /// </summary> /// <param name="record"></param> public virtual async void InsertRecord(M record) { await CheckData(); DataInfos.Add(record); SubmitChange(); }
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)) { //文件夹 } }
/// <summary> /// 删除一条记录 /// </summary> /// <param name="record"></param> public virtual async void DeleteRecord(M record) { await CheckData(); DataInfos.Remove(record); SubmitChange(); }
// 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); } }
/// <summary> /// 清空所有记录 /// </summary> public virtual async void RemoveAll() { await CheckData(); DataInfos.PerformanceClear(); SubmitChange(); }
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); } }
/// <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); } }
/// <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(); } }
/// <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); } }
/// <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(); }
/// <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(); } } }
/// <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(); } }
// 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); } }
/// <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); } }
/// <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)); }
/// <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); }
/// <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); })); }
public SocialDataInfo GetRecord(SocialType socialType) { return(DataInfos.FirstOrDefault(v => v.Type == socialType)); }
[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);