public CubismRenderer(CubismModel model, IEnumerable <Texture> textures) { this.model = model; this.textures = textures.ToList(); foreach (var drawable in model.Drawables) { if (drawable.Masks.Length <= 0) { drawableClippingContexts.Add(null); continue; } ClippingContext newClippingContext = null; int[] maskIds = drawable.Masks.Distinct().OrderBy(x => x).ToArray(); foreach (var target in allClippingContexts) { if (maskIds.SequenceEqual(target.ClippingIds)) { newClippingContext = target; break; } } if (newClippingContext == null) { newClippingContext = new ClippingContext(maskIds); allClippingContexts.Add(newClippingContext); } newClippingContext.ClippedDrawables.Add(drawable); drawableClippingContexts.Add(newClippingContext); } }
private async Task <bool> uploadToServer(List <ClippingItem> clippings) { var offset = 0; var db = new ClippingContext(); while (offset < clippings.Count()) { var clips = clippings.Skip(offset).Take(20).ToList(); var uploadData = new List <Model.HttpDataModel.ClippingItemRequest>(); foreach (var clip in clips) { var req = new Model.HttpDataModel.ClippingItemRequest { Title = clip.Title, Content = clip.Content, Location = clip.Location, BookID = "-1" }; var isInDB = db.Clippings.Any(x => x.DataId == clip.DataId); if (!isInDB) { uploadData.Add(req); } } await this.upload(uploadData); offset += 20; } db.Dispose(); return(true); }
/// <summary> /// Initializes the singleton application object. This is the first line of authored code /// executed, and as such is the logical equivalent of main() or WinMain(). /// </summary> public App() { //this.InitializeComponent(); this.Suspending += OnSuspending; using (var db = new ClippingContext()) { db.Migrate(); } SentryLogger.init(); }
private RectangleF calcClippedDrawTotalBounds(ClippingContext context) { var result = RectangleF.Empty; foreach (var drawable in context.ClippedDrawables) { if (!drawable.Bounds.IsEmpty) { result = RectangleF.Union(result, drawable.Bounds); } } return(result); }
private async void Grid_Drop(object sender, DragEventArgs e) { if (Config.JWT == null) { var loginAlert = new Dialogs.LoginAlert(); await loginAlert.ShowAsync(); return; } var storageItems = await e.DataView.GetStorageItemsAsync(); StorageFile file = storageItems.First() as StorageFile; var fileType = file.FileType.ToString().ToLower(); if (!fileType.Equals(".txt")) { ContentDialog fileTypeAlert = new ContentDialog { Title = "兄弟,我要的是 txt 文件啊", Content = "你这个文件类型不对,把 kindle 里的 clipings.txt 丢给我啊喂! ", CloseButtonText = "老子知道了!", }; await fileTypeAlert.ShowAsync(); return; } Debug.WriteLine(file.FileType.ToString()); var clipItems = await this.FileParser(file); await this.uploadToServer(clipItems); using (var db = new ClippingContext()) { await db.Clippings.AddRangeAsync(clipItems); await db.SaveChangesAsync(); } // TODO: progress ContentDialog memAlert = new ContentDialog { Title = "完成啦", Content = "哇,加载成功啦。 可以去列表页看你的剪切了", CloseButtonText = "老子知道了", }; await memAlert.ShowAsync(); }
public ClipListObservable() { this.clippingContext = new ClippingContext(); }