/// <summary>
        /// Gets the AnalyticsRepository singleton instance. AnalyticsRepository is endpoint for all cinema analytics related queries
        /// </summary>
        /// <returns></returns>
        public AnalyticsRepository GetAnalyticsRepositoryInstance()
        {
            AnalyticsRepository ar = AnalyticsRepository.Instance;

            ar.SetAuthToken(_authToken);
            return(ar);
        }
        public async Task Register_ShouldGetDayResult()
        {
            Mock <DbSet <Panel> > mockPanel = MockPanelRepository();
            Mock <DbSet <OneHourElectricity> > mockOneHourElectricity = MockDayResult();

            var mockContext = new Mock <CrossSolarDbContext>();

            mockContext.Setup(c => c.Set <Panel>()).Returns(mockPanel.Object);
            mockContext.Setup(c => c.Set <OneHourElectricity>()).Returns(mockOneHourElectricity.Object);

            var entityRepository    = new PanelRepository(mockContext.Object);
            var analyticsRepository = new AnalyticsRepository(mockContext.Object);

            var _analyticsController = new AnalyticsController(analyticsRepository, entityRepository);

            // Act
            var result = await _analyticsController.DayResults("AAAA1111BBBB2222");

            // Assert
            Assert.NotNull(result);
            var createdResult = result as OkObjectResult;

            Assert.NotNull(createdResult);
            Assert.Equal(200, createdResult.StatusCode);
        }
        public async Task <IActionResult> VolunteersBlueShirt([FromQuery] DateModel model)
        {
            var user = await userManager.GetUserAsync(User);

            if (user == null ||
                !(await userManager.IsInRoleAsync(user, UserHelpers.UserRoles.Staff.ToString())))
            {
                return(Utilities.ErrorJson("Not authorized."));
            }

            if (model.Date == DateTime.MinValue)
            {
                return(Utilities.GenerateMissingInputMessage("date"));
            }

            try
            {
                AnalyticsRepository repo = new AnalyticsRepository(configModel.ConnectionString);

                return(new JsonResult(new
                {
                    Count = repo.GetNumBlueShirtVolunteers(model)
                }));
            }

            catch (Exception exc)
            {
                return(new JsonResult(new
                {
                    Error = exc.Message,
                }));
            }
        }
Esempio n. 4
0
        /// <summary>
        ///     Creates an incident and a report.
        /// </summary>
        public void CreateReportAndIncident(out int reportId, out int incidentId)
        {
            using (var uow = CreateUnitOfWork())
            {
                CreateUserAndApplication(uow, out var accountId, out var applicationId);

                var report = new ErrorReportEntity(applicationId, Guid.NewGuid().ToString("N"), DateTime.UtcNow,
                                                   new ErrorReportException(new Exception("mofo")),
                                                   new List <ErrorReportContext>
                {
                    new ErrorReportContext("Maps", new Dictionary <string, string>())
                })
                {
                    Title = "Missing here"
                };
                report.Init(report.GenerateHashCodeIdentifier());

                var incident = new IncidentBeingAnalyzed(report);
                var incRepos = new AnalyticsRepository(new AnalysisDbContext(uow), ConfigStore);
                incRepos.CreateIncident(incident);
                incidentId = incident.Id;

                report.IncidentId = incident.Id;
                incRepos.CreateReport(report);
                reportId = report.Id;

                uow.SaveChanges();
            }
        }
Esempio n. 5
0
        public void AnalyticsRepositoryTests()
        {
            var dbMock = new Mock <CrossSolarDbContext>();
            AnalyticsRepository analyticsRepository = new AnalyticsRepository(dbMock.Object);

            Assert.NotNull(analyticsRepository);
        }
        public async Task <IActionResult> ChildrenByAge()
        {
            var user = await userManager.GetUserAsync(User);

            if (user == null ||
                !(await userManager.IsInRoleAsync(user, UserHelpers.UserRoles.Staff.ToString())))
            {
                return(Utilities.ErrorJson("Not authorized."));
            }

            try
            {
                AnalyticsRepository repo = new AnalyticsRepository(configModel.ConnectionString);

                return(new JsonResult(new
                {
                    ChildrenByAge = repo.GetChildrenByAge()
                }));
            }

            catch (Exception exc)
            {
                return(new JsonResult(new
                {
                    Error = exc.Message,
                }));
            }
        }
Esempio n. 7
0
        /// <summary>
        ///     Creates an incident and a report.
        /// </summary>
        public void CreateReportAndIncident(out int reportId, out int incidentId)
        {
            ErrorReportEntity report;

            using (var uow = CreateUnitOfWork())
            {
                report = new ErrorReportEntity(ApplicationId, Guid.NewGuid().ToString("N"), DateTime.UtcNow,
                                               new ErrorReportException(new Exception("mofo")),
                                               new List <ErrorReportContextCollection>
                {
                    new ErrorReportContextCollection("Maps", new Dictionary <string, string>())
                })
                {
                    Title = "Missing here"
                };
                report.Init(report.GenerateHashCodeIdentifier());

                uow.SaveChanges();
            }

            using (var dbContext = CreateUnitOfWork())
            {
                var incident = new IncidentBeingAnalyzed(report);
                var incRepos = new AnalyticsRepository(dbContext);
                incRepos.CreateIncident(incident);
                incidentId = incident.Id;

                report.IncidentId = incident.Id;
                incRepos.CreateReport(report);
                reportId = report.Id;

                dbContext.SaveChanges();
            }
        }
Esempio n. 8
0
        public void ReadCaatSearchableDocuments_FilterOutBadPopTables()
        {
            //Arrange
            var workspaceId           = -343;
            var connectionFactoryMock = new Mock <IConnectionFactory>();
            var aRepo = new AnalyticsRepository(connectionFactoryMock.Object, null);

            //Act
            var caatPopTables             = new List <string>();
            var badPopTables              = new[] { "asdf", "Zca_POP_2", "Zca_POP_asdf_123" };
            var popTablesDontMatchIndexes = new[] { "Zca_POP_999_123", "Zca_POP_123_123" };

            caatPopTables.AddRange(badPopTables);
            caatPopTables.AddRange(popTablesDontMatchIndexes);
            var indexes = new List <Int32>()
            {
                1, 2
            };
            var result1 = aRepo.ReadCaatSearchableDocuments(workspaceId, caatPopTables, indexes);
            var result2 = aRepo.ReadCaatTrainingDocuments(workspaceId, caatPopTables, indexes);

            //Assert
            Assert.That(result1.Count, Is.EqualTo(0));
            Assert.That(result2.Count, Is.EqualTo(0));
        }
Esempio n. 9
0
 public AnalyticsWindow()
 {
     empRepo    = new EmployeeRepository();
     anaRepo    = new AnalyticsRepository();
     viewHelper = new ViewGeneratorHelper(empRepo);
     InitializeComponent();
     PopulateDate();
 }
        public void Setup()
        {
            var options = new DbContextOptionsBuilder <Context>()
                          .UseInMemoryDatabase(databaseName: "test")
                          .Options;

            _context             = new Context(options);
            _analyticsRepository = new AnalyticsRepository(_context);
        }
Esempio n. 11
0
        public void ReadCaatIndexes()
        {
            // TODO -- ? Do these need to target workspace?
            //Arrange
            var aRepo = new AnalyticsRepository(connectionFactory, null);

            //Act
            var result = aRepo.ReadCaatIndexes(Config.WorkSpaceId);

            //Assert
            Assert.That(result.Count(), Is.GreaterThan(0));
        }
Esempio n. 12
0
        public void SaveAnalyticsRecommendation()
        {
            //Arrange
            var ecRepo = new EnvironmentCheckRepository(connectionFactory);
            var aRepo  = new AnalyticsRepository(connectionFactory, ecRepo);

            //Act
            aRepo.SaveAnalyticsRecommendation(new Server()
            {
                ServerName = "localhost"
            }, Guid.Parse("AB10EDAE-67F9-4636-A4C6-94D7EF20D705"), "asdf");

            //Assert
        }
Esempio n. 13
0
        public ActionResult Details(string id)
        {
            Request request = RequestRepository.GetRequest(id);

            if (request == null)
            {
                throw new ApplicationException("Selected request does not exist any more.");
            }

            AnalyticsRepository.RegisterView(Helper.GenerateRequestKey(id),
                                             HttpContext.Request.RawUrl,
                                             HttpContext.Request.UserHostName);

            return(View(request));
        }
Esempio n. 14
0
        public void ReadCaatSearchableDocuments_NoCaatPopTables()
        {
            //Arrange
            var aRepo = new AnalyticsRepository(connectionFactory, null);

            //Act
            var caatPopTables = new List <string>();
            var indexes       = aRepo.ReadCaatIndexes(Config.WorkSpaceId);
            var result1       = aRepo.ReadCaatSearchableDocuments(Config.WorkSpaceId, caatPopTables, indexes);
            var result2       = aRepo.ReadCaatTrainingDocuments(Config.WorkSpaceId, caatPopTables, indexes);

            //Assert
            Assert.That(result1.Count, Is.EqualTo(0));
            Assert.That(result2.Count, Is.EqualTo(0));
        }
Esempio n. 15
0
        public void ReadCaatSearchableDocuments_NoCaatIndexesOrPopTables()
        {
            //Arrange
            var workspaceId           = -343;
            var connectionFactoryMock = new Mock <IConnectionFactory>();
            var aRepo = new AnalyticsRepository(connectionFactoryMock.Object, null);

            //Act
            var caatPopTables = new List <string>();
            var indexes       = new List <Int32>();
            var result1       = aRepo.ReadCaatSearchableDocuments(workspaceId, caatPopTables, indexes);
            var result2       = aRepo.ReadCaatTrainingDocuments(workspaceId, caatPopTables, indexes);

            //Assert
            Assert.That(result1.Count, Is.EqualTo(0));
            Assert.That(result2.Count, Is.EqualTo(0));
        }
Esempio n. 16
0
        public void ReadCaatPopTables()
        {
            //Arrange
            var aRepo = new AnalyticsRepository(connectionFactory, null);

            //Act
            var result = aRepo.ReadCaatPopTables(Config.WorkSpaceId);

            result.ToList();
            result.ToList();
            result.ToList();
            result.ToList();
            result.ToList();

            //Assert
            Assert.That(result.Count(), Is.GreaterThan(0));
        }
Esempio n. 17
0
        public void TestAnalyticsRepository()
        {
            IAnalyticsRepository analytics = new AnalyticsRepository(new CrossSolarDbContext());

            OneHourElectricity oneHourElectricity = new OneHourElectricity()
            {
                DateTime = DateTime.Now,
                KiloWatt = 312,
                PanelId  = "12"
            };

            analytics.InsertAsync(oneHourElectricity);

            var result = analytics.GetByPanelIdAsync("12");

            Assert.NotNull(result);
        }
        public AnalyticsControllerTests()
        {
            var panelmockSet = new Mock <DbSet <Panel> >();

            panelmockSet.As <IAsyncEnumerable <Panel> >()
            .Setup(m => m.GetEnumerator())
            .Returns(new TestAsyncEnumerator <Panel>(_panels.GetEnumerator()));

            panelmockSet.As <IQueryable <Panel> >()
            .Setup(m => m.Provider)
            .Returns(new TestAsyncQueryProvider <Panel>(_panels.Provider));

            panelmockSet.As <IQueryable <Panel> >().Setup(m => m.Expression).Returns(_panels.Expression);
            panelmockSet.As <IQueryable <Panel> >().Setup(m => m.ElementType).Returns(_panels.ElementType);
            panelmockSet.As <IQueryable <Panel> >().Setup(m => m.GetEnumerator()).Returns(_panels.GetEnumerator());

            var electricitymockSet = new Mock <DbSet <OneHourElectricity> >();

            electricitymockSet.As <IAsyncEnumerable <OneHourElectricity> >()
            .Setup(m => m.GetEnumerator())
            .Returns(new TestAsyncEnumerator <OneHourElectricity>(_electricitys.GetEnumerator()));

            electricitymockSet.As <IQueryable <Panel> >()
            .Setup(m => m.Provider)
            .Returns(new TestAsyncQueryProvider <OneHourElectricity>(_electricitys.Provider));

            electricitymockSet.As <IQueryable <OneHourElectricity> >().Setup(m => m.Expression)
            .Returns(_electricitys.Expression);
            electricitymockSet.As <IQueryable <OneHourElectricity> >().Setup(m => m.ElementType)
            .Returns(_electricitys.ElementType);
            electricitymockSet.As <IQueryable <OneHourElectricity> >().Setup(m => m.GetEnumerator())
            .Returns(() => _electricitys.GetEnumerator());

            var contextOptions = new DbContextOptions <CrossSolarDbContext>();
            var mockContext    = new Mock <CrossSolarDbContext>(contextOptions);

            mockContext.Setup(c => c.Set <Panel>()).Returns(panelmockSet.Object);
            mockContext.Setup(c => c.Set <OneHourElectricity>()).Returns(electricitymockSet.Object);

            var panelsRepository    = new PanelRepository(mockContext.Object);
            var analyticsRepository = new AnalyticsRepository(mockContext.Object);


            _analyticsController = new AnalyticsController(analyticsRepository: analyticsRepository,
                                                           panelRepository: panelsRepository);
        }
Esempio n. 19
0
        public void CreateUserAndApp()
        {
            using (var uow = CreateUnitOfWork())
            {
                var accountRepos = new AccountRepository(uow);
                var account      = new Account("arne", "123456")
                {
                    Email = "*****@*****.**"
                };
                accountRepos.Create(account);
                var userRepos = new UserRepository(uow);
                var user      = new User(account.Id, "arne")
                {
                    EmailAddress = "*****@*****.**"
                };
                userRepos.CreateAsync(user).GetAwaiter().GetResult();

                var appRepos = new ApplicationRepository(uow);
                var app      = new Application(account.Id, "MinApp");
                appRepos.CreateAsync(app).GetAwaiter().GetResult();
                var member = new ApplicationTeamMember(app.Id, account.Id, "Admin");
                appRepos.CreateAsync(member).GetAwaiter().GetResult();


                var report = new ErrorReportEntity(app.Id, Guid.NewGuid().ToString("N"), DateTime.UtcNow,
                                                   new ErrorReportException(new Exception("mofo")),
                                                   new List <ErrorReportContext> {
                    new ErrorReportContext("Maps", new Dictionary <string, string>())
                });
                report.Title = "Missing here";
                report.Init(report.GenerateHashCodeIdentifier());

                var incident = new ReportAnalyzer.Domain.Incidents.IncidentBeingAnalyzed(report);
                var incRepos = new AnalyticsRepository(new AnalysisDbContext(uow), ConfigStore);
                incRepos.CreateIncident(incident);
                report.IncidentId = incident.Id;
                incRepos.CreateReport(report);

                uow.SaveChanges();
            }
        }
        public void Should_load_ignored_state_into_class_correctly()
        {
            var report = new ErrorReportEntity(FirstApplicationId, Guid.NewGuid().ToString("N"), DateTime.UtcNow,
                                               new ErrorReportException(new Exception("mofo")),
                                               new List <ErrorReportContext> {
                new ErrorReportContext("Maps", new Dictionary <string, string>())
            })
            {
                Title = "Missing here"
            };

            report.Init(report.GenerateHashCodeIdentifier());

            using (var uow = new AnalysisDbContext(CreateUnitOfWork()))
            {
                var incident = new IncidentBeingAnalyzed(report);
                var incRepos = new AnalyticsRepository(uow, new TestConfigStore());
                incRepos.CreateIncident(incident);
                report.IncidentId = incident.Id;
                incRepos.CreateReport(report);
            }
        }
Esempio n. 21
0
        public IndexModel(SignInManager <Employee> signInManager,
                          CompanyRepository companies,
                          UserManager <Employee> userManager,
                          RoleManager <EmployeeRole> roleManager,
                          IFeedService feeds,
                          ISettings settings,
                          IDistributedCache cache,
                          AnalyticsRepository analytics)
        {
            this.userManager   = userManager;
            this.companies     = companies;
            this.signInManager = signInManager;
            this.roleManager   = roleManager;
            this.feeds         = feeds;
            this.settings      = settings;
            this.cache         = cache;
            this.analytics     = analytics;

            this.jsonSerializerSettings = new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };
        }
 public void InitRepositories()
 {
     EnvironmentCheckRepository = new EnvironmentCheckRepository(this.connectionFactory);
     _dataRepositories.AddRange(new IDbRepository[] {
         ReportRepository = new ReportRepository(this.connectionFactory),
         EnvironmentCheckRepository,
         AnalyticsRepository          = new AnalyticsRepository(this.connectionFactory, EnvironmentCheckRepository),
         FileLatencyRepository        = new FileLatencyRepository(this.connectionFactory),
         PDBNotificationRepository    = new PDBNotificationRepository(this.connectionFactory),
         ResourceServerRepository     = new ResourceServerRepository(this.connectionFactory),
         DeploymentRepository         = new DeploymentRepository(this.connectionFactory),
         PerformanceSummaryRepository = new PerformanceSummaryRepository(this.connectionFactory),
         ConfigurationRepository      = new ConfigurationRepository(this.connectionFactory),
         PrimarySqlServerRepository   = new PrimarySqlServerRepository(this.connectionFactory),
         PerformanceServerRepository  = new ServerRepository(this.connectionFactory),
         AgentRepository              = new AgentRepository(this.connectionFactory),
         SampleHistoryRepository      = new SampleHistoryRepository(this.connectionFactory),
         BackfillRepository           = new BackfillRepository(this.connectionFactory),
         EventRepository              = new EventRepository(this.connectionFactory),
         LogRepository                = new LogRepository(this.connectionFactory),
         ProcessControlRepository     = new ProcessControlRepository(this.connectionFactory),
         ConfigurationAuditRepository = new ConfigurationAuditRepository(this.connectionFactory),
     });
 }
        public async Task <IActionResult> ChildrenByClassForDay([FromQuery] DateModel Date)
        {
            var user = await userManager.GetUserAsync(User);

            if (user == null ||
                !(await userManager.IsInRoleAsync(user, UserHelpers.UserRoles.Staff.ToString())) ||
                await userManager.IsInRoleAsync(user, UserHelpers.UserRoles.Volunteer.ToString()))
            {
                return(Utilities.ErrorJson("Not authorized."));
            }
            VolunteerRepository volunteerRepo = new VolunteerRepository(configModel.ConnectionString);

            // Volunteers must be teachers to have access
            if (User.IsInRole(UserHelpers.UserRoles.Volunteer.ToString()) && !volunteerRepo.VolunteerIsClassTeacher(user.VolunteerId))
            {
                return(Utilities.ErrorJson("Not authorized."));
            }

            try
            {
                AnalyticsRepository repo = new AnalyticsRepository(configModel.ConnectionString);

                return(new JsonResult(new
                {
                    ChildrenByBus = repo.GetChildrenByClassForDay(Date)
                }));
            }

            catch (Exception exc)
            {
                return(new JsonResult(new
                {
                    Error = exc.Message,
                }));
            }
        }
        //a little hack, but it does the job of incrementing the number of views even for download only entity sets
        public void IncrementView()
        {
            string baseUri = System.Configuration.ConfigurationManager.AppSettings["serviceUri"];

            AnalyticsRepository.RegisterView(EntitySet.ContainerAlias + "||" + EntitySet.EntitySetName, baseUri, "");
        }
        public void RegisterDownload(string downloadID)
        {
            string baseUri = System.Configuration.ConfigurationManager.AppSettings["serviceUri"];

            AnalyticsRepository.RegisterDownload(EntitySet.EntityId + "||" + downloadID);
        }
        public void Constructor_WorksFine()
        {
            AnalyticsRepository analyticsRepository = new AnalyticsRepository(new CrossSolarDbContext());

            Assert.NotNull(analyticsRepository);
        }
Esempio n. 27
0
 public AnalyticsRepositoryTest()
 {
     _repository = new AnalyticsRepository(_crossSolarDbContext);
 }
Esempio n. 28
0
 public AnalyticsController(AnalyticsRepository repository)
 {
     _repository = repository;
 }
        public AnalyticsRepositoryTest()
        {
            CrossSolarInMemoryDbContextProvider contextProvider = new CrossSolarInMemoryDbContextProvider();

            _repository = new AnalyticsRepository(contextProvider.GetInMemoryContext());
        }
 public AnalyticsController(AnalyticsDbContext _context)
 {
     this.context       = _context;
     this.analyticsRepo = new AnalyticsRepository(_context);
 }