private async Task <Windows.UI.Xaml.Media.Imaging.WriteableBitmap> DoCaptureWebView() { RingContentVisibility = true; InMemoryRandomAccessStream ms = new InMemoryRandomAccessStream(); await _webview.CapturePreviewToStreamAsync(ms); int screenHeight = (int)_webview.ActualHeight; int screenWidth = (int)_webview.ActualWidth; Windows.UI.Xaml.Media.Imaging.WriteableBitmap wb = await HeatMapFunctions.Resize(screenWidth, screenHeight, ms); RingContentVisibility = false; return(wb); }
private async Task <ObservableCollection <RecordScreenModel> > HeatingScreens(List <RecordScreenModel> screens) { ObservableCollection <RecordScreenModel> result = new ObservableCollection <RecordScreenModel>(); using (var db = new PrototypingContext()) { User user = db.Users.Single(u => u.UserId == RecordModel.UserId); await db.Entry(user) .Reference(u => u.Prototype) .LoadAsync(); string prototypeName = user.Prototype.Name + "_" + user.PrototypeId; string userName = user.Name + "_" + user.UserId; string recordName = "Record_" + RecordModel.RecordId; StorageFolder prototypeFolder = await ApplicationData.Current.LocalFolder.CreateFolderAsync(prototypeName, CreationCollisionOption.OpenIfExists); //PrototypeName + Id StorageFolder userFolder = await prototypeFolder.CreateFolderAsync(userName, CreationCollisionOption.OpenIfExists); //UserName + Id StorageFolder recordFolder = await userFolder.CreateFolderAsync(recordName, CreationCollisionOption.OpenIfExists); foreach (RecordScreenModel screen in screens) { screen.HeatMapScreen = await HeatMapFunctions.CreateProcessHeatMap(screen.OriginalScreen, screen.ListPoints); result.Add(screen); string[] screenPaths = await SaveImagesInStorage(screen.OriginalScreen, screen.HeatMapScreen, recordFolder); //saving images in prototype -> user -> record path RecordScreen rScreen = new RecordScreen() { RecordId = RecordModel.RecordId, Points = screen.ListPoints, UriPage = screen.UriPage, PathToOriginalScreen = screenPaths[0], PathToHeatMapScreen = screenPaths[1] }; db.RecordScreens.Add(rScreen); db.SaveChanges(); } } return(result); }
private async Task <ObservableCollection <RecordScreenModel> > FileToImageTransform(List <RecordScreen> dbScreens) { ObservableCollection <RecordScreenModel> result = new ObservableCollection <RecordScreenModel>(); foreach (RecordScreen dbScreen in dbScreens) { WriteableBitmap heatScreen = await HeatMapFunctions.AsWrBitmapFromFile(dbScreen.PathToHeatMapScreen); WriteableBitmap originalScreen = await HeatMapFunctions.AsWrBitmapFromFile(dbScreen.PathToOriginalScreen); result.Add(new RecordScreenModel() { OriginalScreen = originalScreen, HeatMapScreen = heatScreen, ListPoints = dbScreen.Points, UriPage = dbScreen.UriPage }); } return(result); }
private async Task <ObservableCollection <RecordScreenModel> > HeatingRecordScreens(List <RecordScreen> allScreen) { ObservableCollection <RecordScreenModel> result = new ObservableCollection <RecordScreenModel>(); while (allScreen.Count != 0) { List <HeatPoint> points = allScreen.FindAll(s => s.UriPage.Equals(allScreen[0].UriPage)).SelectMany(s => s.Points).ToList(); WriteableBitmap original = await HeatMapFunctions.AsWrBitmapFromFile(allScreen[0].PathToOriginalScreen); WriteableBitmap heatMap = await HeatMapFunctions.CreateProcessHeatMap(original, points); result.Add(new RecordScreenModel() { UriPage = allScreen[0].UriPage, OriginalScreen = original, HeatMapScreen = heatMap, ListPoints = points }); string uri = allScreen[0].UriPage; allScreen.RemoveAll(s => s.UriPage.Equals(uri)); } return(result); }