public ProjectHost(IObservable <BuildProject> buildProject, ProjectPreview preview, IProject project, Action <ProjectHost> dispose) { BuildProject = buildProject; Preview = preview; Project = project; _dispose = dispose; }
private void Compare(ProjectPreview expected, ProjectPreview actual) { Assert.Equal(expected.Code, actual.Code); Assert.Equal(expected.Description, actual.Description); Assert.Equal(expected.DisplayName, actual.DisplayName); Assert.Equal(expected.PosterDescription, actual.PosterDescription); Assert.Equal(expected.PosterUrl, actual.PosterUrl); Assert.Equal(expected.ReleaseDate, actual.ReleaseDate); Compare(expected.Category, actual.Category); }
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { DataGridView grid = (DataGridView)sender; if (grid.SelectedRows.Count == 1) { DataGridViewRow row = grid.SelectedRows[0]; var id = (int)row.Cells["Id"].Value; var preview = new ProjectPreview(id); preview.Show(); } }
public ViewportFactory( ProjectPreview preview, IProperty <bool> selectionEnabled, int port, IProject project, IFuse fuse, IObserver <OpenGlVersion> glVersion) { _preview = preview; _selectionEnabled = selectionEnabled; _assembly = preview.Assembly.Replay(1).RefCount(); _port = port; _project = project; _fuse = fuse; _glVersion = glVersion; }
public ViewportController( VirtualDevice initialDevice, Action <ViewportController> onFocus, Action <ViewportController> onClose, Func <ViewportController, Menu> menu, ProjectPreview preview, IObservable <AssemblyBuilt> assembly, int port, IFuse fuse, Action <IUnoHostControl> initialize, IObserver <OpenGlVersion> glVersion) { VirtualDevice = new BehaviorSubject <VirtualDevice>(initialDevice); _onClose = onClose; _onFocus = onFocus; var simulatorControl = assembly .Select(assemblyPath => Observable.Start(() => Observable.Using(() => preview.LockBuild(assemblyPath.BuildDirectory), assemblyLock => Observable.Using(() => SpawnUnoHost(assemblyPath, port, fuse, menu(this), initialize, glVersion), unoHost => Observable // never end stream, we don't want to dispose until we've gotten a new one .Never <Optional <IUnoHostControl> >() .StartWith(Optional.Some(unoHost))))) .Switch() .StartWith(Optional.None <IUnoHostControl>())) .Switch() .Replay(1); _subscription = simulatorControl.Connect(); Control = simulatorControl .StartWith(Optional.None <IUnoHostControl>()) .Select(c => c.Select(cc => cc.Control).Or(() => CreateLoadingIndicator())) .Switch() .WithBackground(Color.White); var realControl = simulatorControl.NotNone().Replay(1).RefCount(); _send = message => realControl.Take(1).Subscribe(unoHost => unoHost.MessagesTo.OnNext(message)); }
public Build(IProject project, ProjectPreview preview, PreviewOnDevice previewOnDevice, Command enableUsbMode, BuildArgs args) { var buildLibraries = new BehaviorSubject <bool>(false); var rebuilt = new Subject <object>(); Rebuilt = rebuilt; Rebuild = Command.Enabled(() => { rebuilt.OnNext(new object()); preview.Rebuild(); }); Refresh = Command.Enabled(preview.Refresh); var buildFlagsWindowVisible = new BehaviorSubject <bool>(false); BuildFlags = Command.Enabled(() => buildFlagsWindowVisible.OnNext(true)); Application.Desktop.CreateSingletonWindow( isVisible: buildFlagsWindowVisible, window: window => BuildFlagsWindow.Create(buildFlagsWindowVisible, args)); BuildArguments = Observable.CombineLatest( args.Defines, buildLibraries, args.Verbose, project.FilePath, (d, bl, vb, pp) => new BuildProject(pp.NativePath, List.Create(d.ToArray()), bl, vb)); Menu = Menu.Item("Refresh", Refresh, hotkey: HotKey.Create(ModifierKeys.Meta, Key.R)) + Menu.Item("Rebuild", Rebuild, hotkey: HotKey.Create(ModifierKeys.Meta | ModifierKeys.Shift, Key.R)) + Menu.Separator + Menu.Item("Reconnect USB (Android)", enableUsbMode) + Menu.Separator + previewOnDevice.Menu + Menu.Separator + Menu.Item("Build flags", BuildFlags); }
public async Task <ProjectPreview> GetPreviewAsync(string userEmail, string projectId, GetResourceDetailsResponseModel resourceDetails, GetProjectDetailsResponseModel projectDetails, KEntity languageEntity, GetPartialPagesDetailsResponseModel partialPages, string fpTag, string userId) { var watch = new Stopwatch(); string compilerTime = ""; watch.Start(); ProjectPreview result = null; if (projectId != null && resourceDetails != null) { var doc = new HtmlAgilityPack.HtmlDocument(); var compileResult = KitsuneCompiler.CompileHTML(new CompileResourceRequest { UserEmail = userEmail, FileContent = resourceDetails.HtmlSourceString, IsDev = true, IsPublish = true, ProjectId = projectId, SourcePath = resourceDetails.SourcePath, ClassName = resourceDetails.ClassName, IsPreview = true }, out doc, projectDetails, languageEntity, partialPages); compilerTime += ", CompileHTML : " + watch.ElapsedMilliseconds.ToString(); watch.Restart(); var previewRes = ""; if (!compileResult.Success) { previewRes = ErrorCodeConstants.CompilationError; } else if (resourceDetails.IsStatic) { previewRes = compileResult.CompiledString; } else { try { var client = new HttpClient(); client.BaseAddress = new Uri("http://kitsune-demo-identifier-952747768.ap-south-1.elb.amazonaws.com"); byte[] bytes = Encoding.UTF8.GetBytes(compileResult.CompiledString); string base64 = Convert.ToBase64String(bytes); var obData = new KitsunePreviewModel { DeveloperId = userId, FileContent = base64, NoCacheQueryParam = null, ProjectId = projectId, View = resourceDetails.SourcePath, WebsiteTag = fpTag }; var jsonData = JsonConvert.SerializeObject(obData); var response = await client.PostAsync("/home/kpreview", new StringContent(jsonData, Encoding.UTF8, "application/json")); if (!((int)response.StatusCode >= 200 && (int)response.StatusCode <= 300))//If status code is not 20X, error. { // Log(response?.Content?.ReadAsStringAsync()?.Result); throw new Exception(ErrorCodeConstants.UnableToGetPreview); } previewRes = response.Content.ReadAsStringAsync().Result; } catch (Exception ex) { throw ex; } } var previewTime = watch.ElapsedMilliseconds; result = new ProjectPreview { HtmlString = previewRes, CompilerTime = compilerTime, PreviewTime = previewTime }; } return(result); }