public async Task <IHttpActionResult> Upload() { if (!Request.Content.IsMimeMultipartContent()) { throw new Exception(); // divided by zero } var provider = new MultipartMemoryStreamProvider(); await Request.Content.ReadAsMultipartAsync(provider); foreach (var file in provider.Contents) { var filename = file.Headers.ContentDisposition.FileName.Trim('\"'); if (file.Headers.ContentType.MediaType != MediaTypeNames.Text.Plain) { return(BadRequest("Invalid file type. Only plain-text files are allowed.")); } var buffer = await file.ReadAsStringAsync(); var cache = ConnectionMultiplexer.GetDatabase(); var markovChainCreator = new MarkovChainCreator(cache); var numWordsAdded = markovChainCreator.LoadTextWithSentences(buffer); return(Ok(numWordsAdded)); } return(Ok()); }
public HttpResponseMessage ReceiveSlackOutgoingMessage() { var requestContent = Request.Content; var stringContent = requestContent.ReadAsStringAsync().Result; var values = stringContent.Split('&') .Select(str => str.Split('=')) .ToDictionary(arr => arr[0], arr => arr[1]); // dont listen to yourself if (values[UserNameKey] == MilkBotName) { return(ConstructResponseMessage(HttpStatusCode.OK)); } var decodedMsg = HttpUtility.HtmlDecode(HttpUtility.UrlDecode(values[TextKey])); var cache = ConnectionMultiplexer.GetDatabase(); var markovChainCreator = new MarkovChainCreator(cache); markovChainCreator.LoadString(decodedMsg); return(ConstructResponseMessage(HttpStatusCode.OK)); }