public async Task <ActionResult> SetScore(string hashtags, int score) { // read the body of the tweet var tweet = await ReadInputStreamAsync(); // get a handle the to dispatcher grain var grain = TweetDispatcherGrainFactory.GetGrain(0); // set the score for the hashtags await grain.AddScore(score, hashtags.ToLower().Split(','), tweet); return(this.Content("")); }
/// <summary> /// Get the score for a set of comma separated hashtags /// </summary> /// <param name="hashtags"></param> /// <returns></returns> public async Task <ActionResult> GetScores(string hashtags) { // get a handle the to dispatcher grain var tweetGrain = TweetDispatcherGrainFactory.GetGrain(0); // get the scores for the hashtags var tweetGrainTask = tweetGrain.GetTotals(hashtags.ToLower().Split(',')); // get a handle the to counter grain var counterGrain = CounterFactory.GetGrain(0); // get the total number of hashtag activations var counterGrainTask = counterGrain.GetTotalCounter(); // wait for tasks to complete await Task.WhenAll(tweetGrainTask, counterGrainTask); // return the json return(Json(new object[] { tweetGrainTask.Result, counterGrainTask.Result }, JsonRequestBehavior.AllowGet)); }