/// <summary>
        /// Process finalization data and display warnings
        /// </summary>
        /// <param name="response">Response containing finalization data</param>
        private void ProcessFinalizationResponse(FinalizationData response)
        {
            // parse recognition results for template image
            ObservableCollection <RecognitionResult> recognitionResults = this.ParseAnswers(response.Answers);

            if (recognitionResults.Any(x => !string.IsNullOrEmpty(x.AnswerKey)))
            {
                new FinalizationResultsViewModel(recognitionResults);
            }

            // TODO
            this.FinalizationComplete = true;

            // check warnings
            if (response.Warnings.Length > 0)
            {
                foreach (var responseWarning in response.Warnings)
                {
                    this.Warnings.Add(responseWarning);
                }
            }
            else
            {
                this.Warnings.Add("Finalization complete!");
                this.FinalizationComplete = true;
            }
        }
        /// <summary>
        /// Runs template finalization
        /// </summary>
        private void OnFinilizeTemplate()
        {
            BackgroundWorker worker = new BackgroundWorker();

            worker.DoWork += (sender, args) =>
            {
                string templateData   = TemplateSerializer.TemplateToJson(this, false);
                string additionalPars = string.Empty;

                try
                {
                    string           templateName       = Path.GetFileNameWithoutExtension(this.TemplateImageName) + "_template.omr";
                    FinalizationData finalizationResult = CoreApi.FinalizeTemplate(templateName, Encoding.UTF8.GetBytes(templateData), this.TemplateId, additionalPars);

                    Application.Current.Dispatcher.Invoke(() =>
                    {
                        this.ProcessFinalizationResponse(finalizationResult);
                    });
                }
                catch (Exception e)
                {
                    DialogManager.ShowErrorDialog(e.Message);
                }
            };

            worker.RunWorkerCompleted += (sender, args) =>
            {
                BusyIndicatorManager.Disable();
            };

            BusyIndicatorManager.Enable();

            worker.RunWorkerAsync();
        }
示例#3
0
        /// <summary>
        /// Performs template finalization
        /// </summary>
        /// <param name="templateName">The template file name</param>
        /// <param name="templateData">The template data</param>
        /// <param name="templateId">The template id</param>
        /// <param name="additionalParams">The additional parameters</param>
        /// <returns>Finalization data containing warnings</returns>
        public static FinalizationData FinalizeTemplate(string templateName, byte[] templateData, string templateId, string additionalParams)
        {
            OMRResponse        response       = RunOmrTask(OmrFunctions.FinalizeTemplate, templateName, templateData, templateId, false, false, additionalParams);
            OmrResponseContent responseResult = response.Payload.Result;

            CheckTaskResult(response.Payload.Result);

            FinalizationData data = new FinalizationData();

            data.Answers  = Encoding.UTF8.GetString(responseResult.ResponseFiles[0].Data);
            data.Warnings = responseResult.Info.Details.TaskMessages.ToArray();
            return(data);
        }