public async Task <ActionResult <DashboardInformation> > GetDashboard() { var profile = (ViewApplicationUser)User; if (!profile.IsAdmin) { return(BadRequest()); } var dashboardInfo = new DashboardInformation { NbVisits = await _eventTrackingService.Count(e => e.Category == "Navigation" && e.Key == "HomePage"), NbRegistar = await _eventTrackingService.Count(e => e.Category == "Register" && e.Key == "Finished"), NbLogin = await _eventTrackingService.Count(e => e.Category == "Login"), NbRequestSubscription = await _eventTrackingService.Count(e => e.Category == "Subscription" && e.Key.StartsWith("started")), NbFinishSubscription = await _eventTrackingService.Count(e => e.Category == "Subscription" && e.Key == "Success"), NbAds = await functionalUnitOfWork.AdRepository.CountVisibled() }; var viewFromSocialNetworks = (await _eventTrackingService.Where(c => EF.Functions.Like(c.Category, "%FromSocial%"))).ToList(); var socialNetworks = functionalUnitOfWork.SocialNetworkRepository.GetNetworks(); foreach (var socialNetwork in socialNetworks) { var name = socialNetwork.Name.ToLower(); if (viewFromSocialNetworks.Any(e => e.Key.EndsWith(name))) { CommingFromSocialNetwork commingFromSocialNetwork = new CommingFromSocialNetwork { Name = name, Value = viewFromSocialNetworks.Count(e => e.Key.EndsWith(name)) }; dashboardInfo.CommingFromSocialNetworks.Add(commingFromSocialNetwork); } } List <StatisticsDay> StatisticsDays = new List <StatisticsDay>(); var startDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); var endDate = startDate.AddMonths(1).AddDays(-1); var date = startDate; while (date < endDate) { var statisticDay = await ComputeDay(date); dashboardInfo.StatisticsDays.Add(statisticDay); date = date.AddDays(1); } return(Ok(dashboardInfo)); }
public void Save(string widgetName, string[] hierarchyNamePath, bool isCreateDashboard, string dashboardName) { WidgetNameTextbox.Fill(widgetName); TimeManager.MediumPause(); if (hierarchyNamePath != null) { WidgetSaveHierarchy.Click(); TimeManager.MediumPause(); WidgetSaveHierarchyTree.SelectNode(hierarchyNamePath); TimeManager.MediumPause(); } TimeManager.LongPause(); if (isCreateDashboard) { CreateDashboardButton.Click(); TimeManager.MediumPause(); DashboardNameTextbox.Fill(dashboardName); TimeManager.MediumPause(); } else { DashboardComboBox.SelectItem(dashboardName); } base.Confirm(); //store the dashboards infos prepare to delete when complete running. DashboardInformation CaseDownDashboardInfo = new DashboardInformation(); CaseDownDashboardInfo.DashboardName = dashboardName; CaseDownDashboardInfo.IsCreateDashboard = isCreateDashboard; CaseDownDashboardInfo.WigetName = widgetName; CaseDownDashboardInfo.HierarchyName = hierarchyNamePath; TestAssemblyInitializer.CaseDownDashboardInfos.Add(CaseDownDashboardInfo); }