コード例 #1
0
        public static ModuleValidationEventAgrs CalltoValidate(Object entity, ApiActionType action)
        {
            GetExtensions();
            var e = new ModuleValidationEventAgrs(entity, action);

            if (_Events.ValidateEntity != null)
            {
                _Events.ValidateEntity(e);
                return(e);
            }
            return(e);
        }
コード例 #2
0
        public static ModuleEventAgrs CallActionFinished(Object entity, ApiActionType action)
        {
            GetExtensions();
            var e = new ModuleEventAgrs(entity, action);

            if (_Events.EntityProcessed != null)
            {
                _Events.EntityProcessed(e);
                return(e);
            }
            return(e);
        }
コード例 #3
0
        public async Task <ICommunicationResult> CallServiceAsync(ApiActionType apiActionType, string payload)
        {
            _configurationSettings.DiagnosticLogger.LogInfo($"Performing async service call for {apiActionType}", "HttpCommunicationEngine");

            var svcConfig = _configurationSettings.ServiceUris.GetServiceConfig(apiActionType);
            var uri       = string.Format("{0}{1}", _configurationSettings.BaseUrl, svcConfig.ServiceUri);
            var content   = new ByteArrayContent(System.Text.UTF8Encoding.UTF8.GetBytes(payload));

            try
            {
                using (var httpClient = HttpCommunicationEngine.CreateHttpClient(_configurationSettings.ApiKeys[svcConfig.ApiCategory]))
                {
                    var httpResult = await httpClient.PostAsync(uri, content);

                    _configurationSettings.DiagnosticLogger.LogInfo($"Async service call for {apiActionType} completed ok.", "HttpCommunicationEngine");
                    return(new CommunicationResult(httpResult));
                }
            }
            catch (Exception ex)
            {
                _configurationSettings.DiagnosticLogger.LogError(ex, "HttpCommunicationEngine");
                return(CommunicationResult.Fail(ex.Message));
            }
        }
コード例 #4
0
 public ModuleValidationEventAgrs(Object entity, ApiActionType action)
 {
     Entity      = entity;
     Action      = action;
     MessageText = string.Empty;
 }
コード例 #5
0
 public ApiServiceUriFragment GetServiceConfig(ApiActionType apiAction)
 {
     return(Services[apiAction]);
 }
コード例 #6
0
        private async Task AnalyseAllAsyncForAction(TextAnalyticAnalysisResults apiResults, ApiActionType apiAction)
        {
            if (AnalysisSettings.ActionsToPerform.ContainsKey(apiAction))
            {
                string payload = null;
                var    actions = AnalysisSettings.ActionsToPerform[apiAction];
                apiResults.AnalysisSettings.ConfigurationSettings.DiagnosticLogger.LogInfo($"Serialising payload for {apiAction.ToString()}", "AnalyseAll");
                if (apiAction == ApiActionType.TextAnalyticsTopics)
                {
                    payload = (actions as TextAnalyticTopicActionData).ToString();
                }
                else
                {
                    payload = (actions as TextAnalyticActionData).ToString();
                }

                apiResults.AnalysisSettings.ConfigurationSettings.DiagnosticLogger.LogInfo($"Calling service for {apiAction.ToString()}", "AnalyseAll");

                var result = await AnalysisSettings.CommunicationEngine.CallServiceAsync(apiAction, payload);

                apiResults.AnalysisSettings.ConfigurationSettings.DiagnosticLogger.LogInfo($"Processing results of service call for {apiAction.ToString()}", "AnalyseAll");

                switch (apiAction)
                {
                case ApiActionType.TextAnalyticsSentiment:
                    apiResults.SetResult(new SentimentAnalysisContext((actions as TextAnalyticActionData), new SentimentResult(result)));
                    break;

                case ApiActionType.TextAnalyticsKeyphrases:
                    apiResults.SetResult(new KeyPhraseAnalysisContext((actions as TextAnalyticActionData), new KeyPhraseResult(result)));
                    break;

                case ApiActionType.TextAnalyticsLanguages:
                    apiResults.SetResult(new LanguageAnalysisContext((actions as TextAnalyticActionData), new LanguagesResult(result)));
                    break;

                case ApiActionType.TextAnalyticsTopics:
                    apiResults.SetResult(new TopicAnalysisContext((actions as TextAnalyticTopicActionData), new TopicResult(result)));
                    break;

                default:
                    throw new NotSupportedException($"{apiAction.ToString()} not supported yet");
                }
            }
        }
コード例 #7
0
 public TextAnalyticActionDataItem(long id, string textToAnalyse, SupportedLanguageType language, ApiActionType apiType)
 {
     Id            = id;
     TextToAnalyse = textToAnalyse;
     Language      = language;
     ApiType       = apiType;
 }
コード例 #8
0
 public void Add(ApiActionType apiType, string textToAnalyse, SupportedLanguageType language = SupportedLanguageType.English)
 {
     _itemList.Add(new TextAnalyticActionDataItem(_itemList.Count + 1, textToAnalyse, language, apiType));
 }
        private static TextAnalyticAnalysisSettings AddTextForAnalysis(this TextAnalyticAnalysisSettings apiAnalysis, string textToAnalyse, ApiActionType actionType)
        {
            if (actionType == ApiActionType.TextAnalyticsTopics)
            {
                var topicActionData = GetOrCreateActionInstance <TextAnalyticTopicActionData>(apiAnalysis, actionType);
                topicActionData.Add(textToAnalyse);
                return(apiAnalysis);
            }
            var actionData = GetOrCreateActionInstance <TextAnalyticActionData>(apiAnalysis, actionType);

            actionData.Add(actionType, textToAnalyse);
            return(apiAnalysis);
        }
        private static T GetOrCreateActionInstance <T>(TextAnalyticAnalysisSettings apiAnalysis, ApiActionType actionType) where T : class, IApiActionData, new()
        {
            if (apiAnalysis.ActionsToPerform.ContainsKey(actionType))
            {
                return(apiAnalysis.ActionsToPerform[actionType] as T);
            }

            var data = new T();

            apiAnalysis.ActionsToPerform.Add(actionType, data);
            return(data);
        }
コード例 #11
0
        private async Task AnalyseAllAsyncForAction(EmotionAnalysisResults apiResults, ApiActionType apiAction)
        {
            if (AnalysisSettings.ActionsToPerform.ContainsKey(apiAction))
            {
                var actions = AnalysisSettings.ActionsToPerform[apiAction];

                apiResults.AnalysisSettings.ConfigurationSettings.DiagnosticLogger.LogInfo($"Serialising payload for {apiAction.ToString()}", "AnalyseAll");

                var payload = (actions as EmotionActionData).ToString();

                apiResults.AnalysisSettings.ConfigurationSettings.DiagnosticLogger.LogInfo($"Calling service for {apiAction.ToString()}", "AnalyseAll");
                var result = await AnalysisSettings.CommunicationEngine.CallServiceAsync(apiAction, payload);

                apiResults.AnalysisSettings.ConfigurationSettings.DiagnosticLogger.LogInfo($"Processing results for {apiAction.ToString()}", "AnalyseAll");

                switch (apiAction)
                {
                case ApiActionType.EmotionImageRecognition:
                    apiResults.SetResult(new ImageRecognitionAnalysisContext((actions as EmotionActionData), new ImageRecognitionResult(result)));
                    break;

                default:
                    throw new NotSupportedException($"{apiAction.ToString()} not supported yet");
                }
            }
        }