/// <summary> /// Calls Generate template function and processes result /// </summary> /// <param name="descriptionFileName">Name of the description file</param> /// <param name="descriptionData">Template description data in bytes</param> /// <param name="imagesPath">Cloud storage folder where images are located</param> /// <param name="additionalParams">Internal parameters</param> /// <returns>Generated content with template and image</returns> public static TemplateGenerationContent GenerateTemplate(string descriptionFileName, byte[] descriptionData, string imagesPath, string additionalParams) { imagesPath = @"{ ""ExtraStoragePath"":""" + imagesPath + @"""}"; OMRResponse response = RunOmrTask(OmrFunctions.GenerateTemplate, descriptionFileName, descriptionData, imagesPath, false, false, additionalParams); OmrResponseContent responseResult = response.Payload.Result; CheckTaskResult(response.Payload.Result); byte[] template = responseResult.ResponseFiles.First(x => x.Name.Contains(".omr")).Data; byte[] imageFile = responseResult.ResponseFiles.First(x => x.Name.Contains(".png")).Data; TemplateViewModel templateViewModel = TemplateSerializer.JsonToTemplate(Encoding.UTF8.GetString(template)); templateViewModel.ImageFileFormat = ".png"; TemplateGenerationContent generationContent = new TemplateGenerationContent(); generationContent.ImageData = imageFile; generationContent.Template = templateViewModel; return(generationContent); }
/// <summary> /// Calls template generation /// </summary> private async Task GenerateTemplate() { this.view.Hide(); BusyIndicatorManager.Enable(); string expectedFileNameExtension = ".txt"; byte[] templateDescriptionBytes = Encoding.UTF8.GetBytes(this.TemplateDescription); if (!Path.HasExtension(this.TemplateName) || (Path.HasExtension(this.TemplateName) && Path.GetExtension(this.TemplateName) != expectedFileNameExtension)) { this.TemplateName += expectedFileNameExtension; } try { this.GenerationContent = await Task.Run(() => CoreApi.GenerateTemplate( this.TemplateName, templateDescriptionBytes, this.ExtraStoragePath, string.Empty)); this.GenerationContent.Name = this.TemplateName; } catch (Exception e) { DialogManager.ShowErrorDialog(e.Message); } finally { BusyIndicatorManager.Disable(); } }
/// <summary> /// Template generation completed handler /// </summary> /// <param name="generationResult">Generation result</param> private void GenerationCompleted(TemplateGenerationContent generationResult) { if (generationResult == null) { return; } TemplateViewModel templateViewModel = generationResult.Template; templateViewModel.TemplateImage = TemplateSerializer.DecompressImage(Convert.ToBase64String(generationResult.ImageData)); templateViewModel.TemplateImageName = templateViewModel.TemplateName + ".jpg"; templateViewModel.IsGeneratedTemplate = true; templateViewModel.IsDirty = true; this.AddTab(templateViewModel); }