public async Task <Profanity> AddAsync(ulong serverId, string profanity, ProfanityMode mode)
        {
            var server = await _serverRepository.GetByServerId(serverId);

            if (server == null)
            {
                _logger.LogWarning("Attempted to access a server ({server}) that does not exist.", serverId);
                throw new ArgumentException("Server does not exist!", nameof(serverId));
            }

            var profanityObj = await GetProfanity(profanity);

            if (profanityObj == null)
            {
                profanityObj = new Profanity {
                    Word = profanity
                };
                await AddAsync(profanityObj);
            }

            await ExecuteAsync($"INSERT INTO ProfanityServer " +
                               $"(ServerId, ProfanityId, Mode) " +
                               $"VALUES (@ServerId, @ProfanityId, @Mode);",
                               new { ServerId = server.Id, ProfanityId = profanityObj.Id, Mode = mode });

            return(profanityObj);
        }
Example #2
0
        HttpRequestMessage CreateRequest(OutputMode outputMode)
        {
            try
            {
                var uriBuilder = new UriBuilder(SpeechEndpoint.Protocol,
                                                SpeechEndpoint.Host,
                                                SpeechEndpoint.Port,
                                                SpeechEndpoint.Path);
                uriBuilder.Path += $"/{RecognitionMode.ToString ().ToLower ()}/cognitiveservices/{ApiVersion}";
                uriBuilder.Query = $"language={RecognitionLanguage}&format={outputMode.ToString ().ToLower ()}&profanity={ProfanityMode.ToString ().ToLower ()}";

                Debug.WriteLine($"{DateTime.Now} :: Request Uri: {uriBuilder.Uri}");

                var request = new HttpRequestMessage(HttpMethod.Post, uriBuilder.Uri)
                {
                    Version = HttpVersion.Version11
                };

                request.Headers.TransferEncodingChunked = true;
                request.Headers.ExpectContinue          = true;
                request.Headers.Accept.ParseAdd(Constants.MimeTypes.Json);
                request.Headers.Accept.ParseAdd(Constants.MimeTypes.Xml);
                request.Headers.Host = SpeechEndpoint.Host;

                switch (AuthenticationMode)
                {
                case AuthenticationMode.SubscriptionKey:
                    request.Headers.Add(Constants.Keys.SubscriptionKey, subscriptionKey);
                    break;

                case AuthenticationMode.AuthorizationToken:
                    request.Headers.Authorization = new AuthenticationHeaderValue(Constants.Keys.Bearer, AuthClient.Token);
                    break;
                }

                return(request);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                throw;
            }
        }