public ActionResult <PredictionDTO> UserRecentPrediction(string twitter_nick) { if (twitter_nick == null) { return(BadRequest()); } var analytics = UserRecentAnalytics(twitter_nick); if (analytics == null) { return(NotFound()); } var response = new PredictionDTO() { ActivityChartPath = $"/output/activity_{twitter_nick}.png", PieChartPath = $"/output/piechart_{twitter_nick}.png", LastModified = analytics.LastUpdated, TopPositiveWordsJson = analytics.TopPositiveWordsJson, TopNegativeWordsJson = analytics.TopNegativeWordsJson }; return(Ok(response)); }
public ActionResult <PredictionDTO> GetUserPrediction(string twitter_nick, int count) { if (string.IsNullOrEmpty(twitter_nick) || count == 0) { return(BadRequest()); } var analytics = UserRecentAnalytics(twitter_nick); if (analytics != null) { var response = new PredictionDTO() { ActivityChartPath = $"/output/activity_{twitter_nick}.png", PieChartPath = $"/output/piechart_{twitter_nick}.png", LastModified = analytics.LastUpdated, TopPositiveWordsJson = analytics.TopPositiveWordsJson, TopNegativeWordsJson = analytics.TopNegativeWordsJson }; return(Ok(response)); } else { try { string link = $"http://localhost:5000/api/analytics?twitter_nick={twitter_nick}&count={count}"; string predictionResponse = HttpSender.SendHttpRequest(new Uri(link), "POST"); dynamic parsedResponse = JsonConvert.DeserializeObject(predictionResponse); TwitterUserStatistic statistic = CreateOrUpdateUserStatistic( twitter_nick, double.Parse(parsedResponse["good"].ToString()), double.Parse(parsedResponse["bad"].ToString())); var response = new PredictionDTO() { ActivityChartPath = $"/output/activity_{twitter_nick}.png", PieChartPath = $"/output/activity_{twitter_nick}.png", LastModified = statistic.LastUpdated, TopPositiveWordsJson = analytics.TopPositiveWordsJson, TopNegativeWordsJson = analytics.TopNegativeWordsJson }; return(Ok(response)); } catch (Exception ex) { return(BadRequest(ex.Message)); } } }
public void AddPrediction(Prediction prediction) { lock (this.lockMe) { if (this.predictions == null) { this.predictions = new List <PredictionDTO>(); } PredictionDTO predictionDTO = Mapper.Map <Prediction, PredictionDTO>(prediction); this.predictions.Add(predictionDTO); } }
public async Task <PredictionResultDTO> MakePrediction(PredictionDTO model) { var transactions = (from t in DbContext.TransactionEnities join c in DbContext.ContactDatas on t.ContactDataId equals c.Id where t.IsDeleted == null && t.UserDataId == model.UserId && t.CreatedAt.Day == model.PredictDate select new TransactionPredictDTO() { Id = t.Id, Amount = t.Amount, ContactName = c.Name, Recurring = t.Recurring, RecurringType = t.RecurringType.ToString(), CreatedAt = t.CreatedAt, ContactType = c.Type }).ToList(); if (transactions.Count > 0) { var datecounts = transactions.GroupBy(d => d.CreatedAt.Date).Count(); var groupTransactions = transactions.GroupBy(i => i.ContactType).Select(s => new TransactionCategory() { Amount = s.Sum(t => t.Amount) / datecounts, Count = s.Count(), Type = s.First().ContactType }).ToList(); return(new PredictionResultDTO() { PredictExpence = groupTransactions.Where(s => s.Type == "Payee").Select(p => p.Amount).First(), PredictIncome = groupTransactions.Where(s => s.Type == "Payer").Select(p => p.Amount).First(), }); } else { return(new PredictionResultDTO() { PredictExpence = 0, PredictIncome = 0 }); } }