/// <summary> /// Проверить адрес сервиса Ario. /// </summary> /// <returns>Тип и текст ошибки, если она была обнаружена.</returns> public virtual Structures.SmartProcessingSetting.SettingsValidationMessage ValidateArioUrl() { // Проверка, что адрес Ario не "кривой". if (!System.Uri.IsWellFormedUriString(_obj.ArioUrl, UriKind.Absolute)) { return(SettingsValidationMessageStructure.Create(MessageTypes.Error, SmartProcessingSettings.Resources.InvalidArioUrl)); } if (!Docflow.PublicFunctions.SmartProcessingSetting.Remote.CheckConnection(_obj)) { return(SettingsValidationMessageStructure.Create(MessageTypes.SoftError, SmartProcessingSettings.Resources.ArioConnectionError)); } return(null); }
/// <summary> /// Проверить классификаторы. /// </summary> /// <returns>Тип и текст ошибки, если она была обнаружена.</returns> public virtual Structures.SmartProcessingSetting.SettingsValidationMessage ValidateClassifiers() { if (!_obj.FirstPageClassifierId.HasValue || !_obj.TypeClassifierId.HasValue) { return(SettingsValidationMessageStructure.Create(MessageTypes.SoftError, SmartProcessingSettings.Resources.SetCorrectClassifiers)); } var arioClassifiersExist = Functions.SmartProcessingSetting.Remote.IsArioClassifiersExist(_obj); if (!arioClassifiersExist) { return(SettingsValidationMessageStructure.Create(MessageTypes.SoftError, SmartProcessingSettings.Resources.SetCorrectClassifiers)); } if (_obj.FirstPageClassifierId.Value == _obj.TypeClassifierId.Value) { return(SettingsValidationMessageStructure.Create(MessageTypes.Warning, SmartProcessingSettings.Resources.SetCorrectClassifiers)); } return(null); }
public static Docflow.Structures.SmartProcessingSetting.SettingsValidationMessage SetSettings(string arioUrl, string lowerConfidenceLimit, string upperConfidenceLimit, string firstPageClassifierName, string typeClassifierName) { var smartProcessingSettings = Functions.SmartProcessingSetting.GetSettings(); // Адрес. smartProcessingSettings.ArioUrl = arioUrl; var arioUrlValidationMessage = Functions.SmartProcessingSetting.ValidateArioUrl(smartProcessingSettings); if (arioUrlValidationMessage != null) { return(arioUrlValidationMessage); } // Проверка корректности логина и пароля. var loginResult = Functions.SmartProcessingSetting.Login(smartProcessingSettings, smartProcessingSettings.Password, true); if (!string.IsNullOrEmpty(loginResult.Error)) { return(SettingsValidationMessageStructure.Create(MessageTypes.Error, loginResult.Error)); } // Границы. int lowerLimit; int upperLimit; smartProcessingSettings.LowerConfidenceLimit = int.TryParse(lowerConfidenceLimit, out lowerLimit) ? lowerLimit : -1; smartProcessingSettings.UpperConfidenceLimit = int.TryParse(upperConfidenceLimit, out upperLimit) ? upperLimit : -1; var confidenceLimitsValidationMessage = Functions.SmartProcessingSetting.ValidateConfidenceLimits(smartProcessingSettings); if (confidenceLimitsValidationMessage != null) { return(confidenceLimitsValidationMessage); } // Классификаторы. var classifiers = Functions.SmartProcessingSetting.GetArioClassifiers(smartProcessingSettings); var firstPageClassifier = classifiers.Where(a => a.Name == firstPageClassifierName).FirstOrDefault(); var typeClassifier = classifiers.Where(a => a.Name == typeClassifierName).FirstOrDefault(); if (firstPageClassifier == null || typeClassifier == null) { return(SettingsValidationMessageStructure.Create(MessageTypes.Error, SmartProcessingSettings.Resources.SetCorrectClassifiers)); } smartProcessingSettings.FirstPageClassifierName = firstPageClassifier.Name; smartProcessingSettings.FirstPageClassifierId = firstPageClassifier.Id; smartProcessingSettings.TypeClassifierName = typeClassifier.Name; smartProcessingSettings.TypeClassifierId = typeClassifier.Id; smartProcessingSettings.Save(); // Предупредить, что выбраны одинаковые классификаторы. if (firstPageClassifierName == typeClassifierName) { return(SettingsValidationMessageStructure.Create(MessageTypes.Warning, SmartProcessingSettings.Resources.SetCorrectClassifiers)); } return(null); }