public AnalyticsControl() { var viewModel = new AnalyticsViewModel(); this.DataContext = viewModel; InitializeComponent(); }
// GET: Reviews public ActionResult Index(string sortOrder) { ViewBag.Title = "Product Reviews"; List <AnalyticsViewModel> campaignList = new List <AnalyticsViewModel>(); // LINQ Query Syntax used over Method Syntax for simplicity and clarity; performance will be the same. var campaignsWithReviews = from campaigns in db.Campaigns from reviews in db.Reviews where campaigns.CampaignID == reviews.CampaignId orderby campaigns.CampaignID select campaigns; ViewBag.NameSortParm = "name"; ViewBag.NameDescSortParm = "name_desc"; ViewBag.RatingSortParm = "rating"; ViewBag.RatingDescSortParm = "rating_desc"; // NOTE: Sort order is not my work ... added by another programmer switch (sortOrder) { //sort reviews based on "Sort by" dropdown selection case "name": campaignsWithReviews = campaignsWithReviews.OrderBy(r => r.Name); break; case "name_desc": campaignsWithReviews = campaignsWithReviews.OrderByDescending(r => r.Name); break; case "rating": campaignsWithReviews = from campaigns in db.Campaigns from reviews in db.Reviews where campaigns.CampaignID == reviews.CampaignId orderby reviews.ProductRating select campaigns; break; case "rating_desc": campaignsWithReviews = from campaigns in db.Campaigns from reviews in db.Reviews where campaigns.CampaignID == reviews.CampaignId orderby reviews.ProductRating descending select campaigns; break; } // // Creating new variable of List<Campaign>, containing only unique instances of campagins with reviews. var uniqueCampaignsWithReviews = new HashSet <Campaign>(campaignsWithReviews).ToList(); foreach (var campaign in uniqueCampaignsWithReviews) { AnalyticsViewModel campaignModel = new AnalyticsViewModel(campaign); campaignList.Add(campaignModel); } return(View(campaignList)); }
public ActionResult ByTag(PagerParameters pagerParameters, AnalyticsViewModel <SingleStatDto> model) { if (!_analyticsSettings.TagsEnabled) { return(HttpNotFound()); } return(GetAnalyticsResults(pagerParameters, model, x => _analyticsQueries.GetByTagCount(x), x => _analyticsQueries.GetByTag(x))); }
public JsonResult GetAnalyticsField() { AnalyticsViewModel viewModel = new AnalyticsViewModel { Categories = _context.Categories.ToList(), Products = _context.Products.ToList(), Users = _mapper.Map <List <User> >(_context.Users.ToList()) }; return(new JsonResult(viewModel)); }
public IActionResult Analytics() { if (_user == null) { _user = _userManager.GetUserAsync(User).Result; } var viewModel = new AnalyticsViewModel(_db, _dbConnection, _userManager, _user, ChartInterval.Week); return(View(viewModel)); }
// GET: Analytics public ActionResult Index() { var user = db.Users.FirstOrDefault(u => u.Email.Equals(User.Identity.Name)); List <Execution> executions = db.Executions.ToList(); List <Machine> machines = db.Machines.ToList(); if (user.Role != Role.Admin && user.Role != Role.Manager) { executions = executions.Where(e => e.Machine.CompanyCode == user.CompanyCode).ToList(); machines = machines.Where(m => m.CompanyCode == user.CompanyCode).ToList(); } Dictionary <Status, int> totalStatuses = executions.GroupBy(execution => execution.Status) .ToList().ToDictionary(input => input.Key, grouping => grouping.Count()); Dictionary <Reason, int> totalReasons = executions.GroupBy(execution => execution.Reason) .ToList().ToDictionary(input => input.Key, grouping => grouping.Count()); Dictionary <Country, int> totalCountries = machines.GroupBy(execution => execution.Country) .ToList().ToDictionary(input => input.Key, grouping => grouping.Count()); Dictionary <Machine, int> totalMachine = executions.GroupBy(execution => execution.Machine) .ToList().ToDictionary(input => input.Key, grouping => grouping.Count()); var myData = from log in executions group log by log.CreationDate.Value.Date into g orderby g.Key select new { CreateTime = g.Key, Count = g.Count() }; Tuple <int, int, int> states = new Tuple <int, int, int>(machines.Count(), machines.Count(m => !m.IsDeleted), machines.Count(m => m.IsDeleted)); Dictionary <DateTime, int> totalExecutionsPerDay = myData.ToList().Where(i => i.CreateTime != null).ToDictionary(i => (DateTime)i.CreateTime, i => i.Count); AnalyticsViewModel analyticsViewModel = new AnalyticsViewModel() { TotalStatuses = totalStatuses, TotalCountries = totalCountries, TotalReasons = totalReasons, TotalExecutionsPerDay = totalExecutionsPerDay, TotalMachines = totalMachine, MachinesState = states }; return(PartialView(analyticsViewModel)); }
// GET: Relevant Seller Campaigns // Static Search For Now, Will change depending on user after SellerID and ApplicationUser Id are // a single data point "db.Campaigns.Where(s => s.ID = ....)"; public ActionResult SellerIndex() { List <AnalyticsViewModel> campaigns = new List <AnalyticsViewModel>(); string applicationUserId = User.Identity.GetUserId(); var sellerCampaigns = db.Campaigns.Where(s => s.ApplicationUser.Id == applicationUserId); foreach (var campaign in sellerCampaigns) { AnalyticsViewModel campaignModel = new AnalyticsViewModel(campaign); campaigns.Add(campaignModel); } return(View(campaigns)); }
// GET: Reviews the buyer has created // Same expression as seen on Campaign Controller public ActionResult ReviewIndex() { List <AnalyticsViewModel> campaignList = new List <AnalyticsViewModel>(); string UserId = HttpContext.User.Identity.GetUserId(); var campaigns = db.Campaigns.Where(x => x.ApplicationUser.Id.ToString() == UserId); foreach (var campaign in campaigns) { AnalyticsViewModel campaignModel = new AnalyticsViewModel(campaign); campaignList.Add(campaignModel); } ViewBag.Title = "Products You've Reviewd"; return(View("Index", campaignList)); }
public async Task <IActionResult> Index(ulong guildId) { var messages = await _messageEntityService.Get(message => message.GuildId == guildId); var uniqueUsers = messages.Select(m => m.AuthorId).Distinct().Count(); var viewModel = new AnalyticsViewModel { ChatTracker = new ChatTrackerViewModel { Messages = messages, UniqueUsers = uniqueUsers } }; return(View(viewModel)); }
// GET: Campaigns/BuyerDetails/ public ActionResult BuyerDetails(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Campaign buyers = db.Campaigns.Find(id); AnalyticsViewModel buyer = new AnalyticsViewModel(buyers); { } if (buyer == null) { return(HttpNotFound()); } return(View(buyer)); }
public ActionResult Index() { AnalyticsDTO analyticsDTO = new AnalyticsDTO(); ProductBusinessContext productBusinessContext = new ProductBusinessContext(); AnalyticsViewModel analyticsViewModel = new AnalyticsViewModel(); try { analyticsDTO = productBusinessContext.GetTopProductsByCart(); analyticsViewModel = AnalyticsMapper.Map <AnalyticsDTO, AnalyticsViewModel>(analyticsDTO); return(View(analyticsViewModel)); } catch (Exception ex) { return(View("InternalError" + ex)); } }
/// <summary> /// Returns Analytics/Default.csthml or nothing if neither GA nor AppIns is available. /// </summary> /// <returns></returns> /// <remarks> /// Should I output this VC only when env is Production? /// </remarks> public async Task <IViewComponentResult> InvokeAsync() { var coreSettings = await _settingSvc.GetSettingsAsync <CoreSettings>(); var vm = new AnalyticsViewModel { GoogleAnalyticsTrackingID = coreSettings.GoogleAnalyticsTrackingID, AppInsightsFullScript = _jsSnippet.FullScript, }; // if neither is available, show nothing if (vm.AppInsightsFullScript.IsNullOrEmpty() && vm.GoogleAnalyticsTrackingID.IsNullOrEmpty()) { return(Content(string.Empty)); } return(View("Analytics.cshtml", vm)); }
private ActionResult DownloadCsv <D>(AnalyticsViewModel <D> model) { var ms = new MemoryStream(); var sw = new StreamWriter(ms); var csvWriter = new CsvWriter(sw); csvWriter.WriteHeader <D>(); foreach (var entry in model.Entries) { csvWriter.WriteRecord(entry); } sw.Flush(); ms.Seek(0, SeekOrigin.Begin); return(File(ms, "text/csv", $"analytics-{DateTime.Now:yyyy-MM-dd-HH-mm}.csv")); }
public IActionResult Index() { var allUserComments = _db.MainComments.ToList(); var allUserSubComments = _db.SubComments.ToList(); AnalyticsViewModel model = new AnalyticsViewModel(); model.CommentList = new List <CommentListViewModel>(); model.CommentList = _db.MainComments.Select(r => new CommentListViewModel { UserName = r.UserName, Id = r.Id, NumberOfComments = allUserComments.Count(ur => ur.Id == r.Id) + allUserSubComments.Count(ur => ur.Id == r.Id) }).ToList(); model.PageViews = _db.Posts.Sum(s => s.Views); return(View(model)); }
public ActionResult GetData(string teamId, string month) { IEnumerable <Team> teamsList = _teamRepository.GetTeams(); List <ListItem> listItems = new List <ListItem>(); foreach (var team in teamsList) { listItems.Add(new ListItem(team.Name, team.TeamId)); } AnalyticsViewModel model = new AnalyticsViewModel() { ListItems = listItems, ListItemValue = new ListItem(), CasesData = GetAnalyticsData(teamId, month) }; return(this.Store(model.CasesData)); }
public ActionResult Index() { IEnumerable <Team> teamsList = _teamRepository.GetTeams(); List <ListItem> listItems = new List <ListItem>(); foreach (var team in teamsList) { listItems.Add(new ListItem(team.Name, team.TeamId)); } AnalyticsViewModel model = new AnalyticsViewModel() { ListItems = listItems, ListItemValue = new ListItem(), CasesData = GetAnalyticsData() }; return(View(model)); }
// GET: Analytics public ActionResult Index(int?itemId) { var items = _provider.GetAllItems().ToArray(); var vm = new AnalyticsViewModel( _provider.GetMostWantedCategory(), _provider.GetMostOfferedCategory(), _provider.GetMostWantedSubcategory(), _provider.GetMostOfferedSubcategory()) { MostWantedItems = _provider.GetMostWantedItem(), MostOfferedItems = _provider.GetMostOfferedItem(), Items = new SelectList(items, "Id", "Name") }; // by default shows the trends of the #1 most wanted item (if present). var mostWantedItem = vm.MostWantedItems.FirstOrDefault(); if (mostWantedItem != null) { vm.ItemId = mostWantedItem.Item.Id; } else // ... or the trends of the first item. { Debug.Assert(items.FirstOrDefault() != null, "There are no items in the db!"); vm.ItemId = items.First().Id; } vm.Chart = CreateChart( itemId ?? vm.ItemId); // if specified, shows the trends of the specified item. if (Request.IsAjaxRequest()) { return(PartialView("_Analytics", vm)); } return(View(vm)); }
public async Task <IActionResult> PostAnalytics([FromBody] AnalyticsViewModel analytics) { try { //string userId = this.User.FindFirstValue(ClaimTypes.Name); var identity = (ClaimsIdentity)this.User.Identity; var claims = identity.Claims.ToList(); var username = claims.FirstOrDefault(x => x.Type == "cognito:username")?.Value; var groupQuestions = from q in analytics.QuestionAnswers group q by q.SetName into qGroup select qGroup; foreach (var q in groupQuestions) { Assessment assessment = _assessmentViewModelFactory.Create(analytics.Assessment); assessment.AssessmentCreatorId = username; assessment.SetName = q.FirstOrDefault()?.SetName; assessment = await _analyticsBusiness.SaveAssessment(assessment); List <AnalyticQuestionAnswer> questions = (_questionViewModelFactory.Create(q.AsQueryable())).ToList(); questions.ForEach(x => { x.AssessmentId = assessment.Assessment_Id; x.Industry = assessment.IndustryName; x.Sector = assessment.SectorName; }); questions.Where(x => x.AnswerText == null).ToList().ForEach(x => x.AnswerText = "U"); await _analyticsBusiness.SaveAnalyticQuestions(questions); } return(Ok(new { message = "Analytics data saved" })); } catch (Exception ex) { return(BadRequest(new { message = $"Analytics information was not saved" })); } }
public async Task <IActionResult> PostAnalyticsAnonymously([FromBody] AnalyticsViewModel analytics) { try { Assessment assessment = _assessmentViewModelFactory.Create(analytics.Assessment); assessment.AssessmentCreatorId = null; assessment = await _analyticsBusiness.SaveAssessment(assessment); List <AnalyticQuestionAnswer> questions = (_questionViewModelFactory.Create(analytics.QuestionAnswers.AsQueryable())).ToList(); questions.ForEach(x => x.AssessmentId = assessment.Assessment_Id); questions.Where(x => x.AnswerText == null).ToList().ForEach(x => x.AnswerText = "U"); await _analyticsBusiness.SaveAnalyticQuestions(questions); return(Ok(new { message = "Analytics data saved" })); } catch (Exception ex) { return(BadRequest($"Analytic information was not saved: {ex.Message}")); } }
private AnalyticsQueryModel QueryModelForViewModel(Pager pager, AnalyticsViewModel model) { var query = new AnalyticsQueryModel { Skip = model.DownloadCsv ? 0 : pager.GetStartIndex(), Take = model.DownloadCsv ? 0 : pager.PageSize }; DateTime parsed; if (!string.IsNullOrWhiteSpace(model.From.Date) && DateTime.TryParse(model.From.Date, out parsed)) { query.FromUtc = parsed.ToUniversalTime(); } if (!string.IsNullOrWhiteSpace(model.To.Date) && DateTime.TryParse(model.To.Date, out parsed)) { query.ToUtc = parsed.ToUniversalTime(); } query.Term = model.Term; return(query); }
/// <summary> /// sorts the data as per the requirement. /// top 3 categories with top 3 selling products at begining /// </summary> /// <returns></returns> public ActionResult Index() { try { IEnumerable <CategoryDTO> categoryDTOs; AnalyticsDTO analyticsDTO = new AnalyticsDTO(); ProductBusinessContext productBusinessContext = new ProductBusinessContext(); AnalyticsViewModel analyticsViewModel = new AnalyticsViewModel(); try { analyticsDTO = productBusinessContext.GetTopProductsByCart(); analyticsViewModel = AnalyticsMapper.Map <AnalyticsDTO, AnalyticsViewModel>(analyticsDTO); return(View(analyticsViewModel)); } catch (Exception ex) { return(RedirectToAction("ExceptionCatch", "Static", new { exception = ex.Message })); } }catch (Exception ex) { return(RedirectToAction("ExceptionCatch", "Static", new { exception = ex.Message })); } }
public ActionResult Index() { if (Session["UserID"] != null) { ViewBag.IsLoggedIn = "True"; } ProductBusinessContext productBusinessContext = new ProductBusinessContext(); //productBusinessContext.Changes(new Guid(Session["UserID"].ToString())); AnalyticsViewModel analyticsViewModel = new AnalyticsViewModel(); AnalyticsDTO analyticsDTO = new AnalyticsDTO(); try { analyticsDTO = productBusinessContext.GetTopProductsByCat(); analyticsViewModel = _AnalyticsMapper.Map <AnalyticsDTO, AnalyticsViewModel>(analyticsDTO); return(View(analyticsViewModel)); } catch (Exception) { return(View("Internal Error")); } }
public ActionResult Index(PagerParameters pagerParameters, AnalyticsViewModel <RawAnalyticsDto> model) { return(GetAnalyticsResults(pagerParameters, model, query => _analyticsQueries.GetAllCount(query), query => _analyticsQueries.GetAll(query))); }
private ActionResult GetAnalyticsResults <D>(PagerParameters pagerParameters, AnalyticsViewModel <D> model, Func <AnalyticsQueryModel, int> count, Func <AnalyticsQueryModel, IList <D> > entries) { if (!_authorizer.Authorize(Permissions.ViewAnalytics, T("You are not allowed to view analytics, missing View Analytics permission."))) { throw new UnauthorizedAccessException(); } if (model.From == null) { model.From = new DateTimeEditor(); } model.From.ShowDate = true; if (model.To == null) { model.To = new DateTimeEditor(); } model.To.ShowDate = true; var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters); var queryModel = QueryModelForViewModel(pager, model); var total = count(queryModel); var pagerShape = _shape.Pager(pager).TotalItemCount(total); model.Entries = entries(queryModel); model.Pager = pagerShape; model.TagsEnabled = _analyticsSettings.TagsEnabled; if (!model.DownloadCsv) { return(View(model)); } return(DownloadCsv(model)); }
public AnalyticsPopUp() { InitializeComponent(); viewModel = new AnalyticsViewModel(); BindingContext = viewModel; }
public async Task OnGetAsync(CancellationToken cancellationToken) { this.Model = Map(await this.analyticsService.GetHits(cancellationToken)); }
/// <summary> /// Get the analytics for the website /// </summary> /// <returns></returns> public AnalyticsViewModel GetAnalytics() { AnalyticsViewModel analyticsVM = new AnalyticsViewModel(); MicoBloggingEntities db = new MicoBloggingEntities(); //Query selects the total tweets var tweetData = db.Tweets.Select(t => t).ToList(); //tweets are filtered by Today's date int totalTweetsToday = tweetData.Where(t => DateTime.Compare(t.CreationTime.Date, DateTime.Now.Date) == 0).Count(); //Adds Data to Analytics View Model analyticsVM.TotalTweetsToday = totalTweetsToday; //selects the tweet //group by userid //finds count in descending order Queue <int> list = new Queue <int>(); try { foreach (var line in tweetData.GroupBy(tweet => tweet.UserId) .Select(group => new { UserId = group.Key, Count = group.Count() }).OrderByDescending(x => x.Count)) { int UserId = line.UserId; list.Enqueue(UserId); } //Selects the user firstname //that have most tweets till date if (list.Count() > 0) { int userId = list.Dequeue(); string mostTweetsBy = (from userD in db.Users where userD.Uid == userId select userD.FName).Single(); //puts the data in the Viewmodel analyticsVM.MostTweetsBy = mostTweetsBy; } } catch (Exception) { Console.WriteLine("Sorry Some Error Occured"); } /* Query to select the Most Liked tweets * grouping by tweet id * where twiteliek is true * order by descending */ var tweetLikeDislike = db.TweetLikeDislikes.Select(t => t).ToList(); Queue <int> listLD = new Queue <int>(); var Like = db.TweetLikeDislikes.Select(t => t.LikeDislike).ToList(); try { foreach (var tweetLData in tweetLikeDislike.Where(x => x.LikeDislike == "true ").GroupBy(tweet => tweet.TweetId) .Select(group => new { tweetId = group.Key, count = group.Count(), }).OrderByDescending(x => x.tweetId) ) { int tweetid = Convert.ToInt32(tweetLData.tweetId); listLD.Enqueue(tweetid); break; } /* * finds the Tweet Body in database * that has maximum Likes*/ int tweetId = listLD.Dequeue(); string mostLikedTweet = (from tweet in db.Tweets where tweet.Tid == tweetId select tweet.Body).Single(); //Inserts into Analytics analyticsVM.MostLikedTweets = mostLikedTweet; } catch (Exception) { Console.WriteLine("Sorry Some Error Occured"); } return(analyticsVM); }
public ActionResult ByUser(PagerParameters pagerParameters, AnalyticsViewModel <SingleStatDto> model) { return(GetAnalyticsResults(pagerParameters, model, query => _analyticsQueries.GetByUserCount(query), query => _analyticsQueries.GetByUser(query))); }