Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }