/// <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(); }
/// <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); }